forked from MapComplete/MapComplete
		
	Add tools to create postal code boundaries
This commit is contained in:
		
							parent
							
								
									7be5493284
								
							
						
					
					
						commit
						98d92e763a
					
				
					 6 changed files with 1080 additions and 3 deletions
				
			
		|  | @ -51,7 +51,7 @@ Minimap.createMiniMap = _ => { | |||
| 
 | ||||
| const dummyLayout = new LayoutConfig({ | ||||
|     language: ["en"], | ||||
|     id: "<theme>", | ||||
|     id: ">theme<", | ||||
|     maintainer: "pietervdvn", | ||||
|     version: "0", | ||||
|     title: "<theme>", | ||||
|  | @ -63,7 +63,7 @@ const dummyLayout = new LayoutConfig({ | |||
|     layers: [ | ||||
|         { | ||||
|             name: "<layer>", | ||||
|             id: "<layer>", | ||||
|             id: "<layer>", | ||||
|             source: { | ||||
|                 osmTags: "id~*" | ||||
|             }, | ||||
|  | @ -75,7 +75,7 @@ const dummyLayout = new LayoutConfig({ | |||
| 
 | ||||
| new FeatureSwitchState(dummyLayout) | ||||
| 
 | ||||
| QueryParameters.GetQueryParameter("layer-<layer-id>", "true", "Wether or not the layer with id <layer-id> is shown") | ||||
| QueryParameters.GetQueryParameter("layer-<layer-id>", "true", "Wether or not the layer with id <layer-id> is shown") | ||||
| 
 | ||||
| WriteFile("./Docs/URL_Parameters.md", QueryParameterDocumentation.GenerateQueryParameterDocs(), ["QueryParameters"]) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										30
									
								
								scripts/makeConvex.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								scripts/makeConvex.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | |||
| import fs from "fs"; | ||||
| import {GeoOperations} from "../Logic/GeoOperations"; | ||||
| import ScriptUtils from "./ScriptUtils"; | ||||
| 
 | ||||
| /** | ||||
|  * Given one of more files, calculates a somewhat convex hull for them | ||||
|  * @param file | ||||
|  */ | ||||
| 
 | ||||
| function makeConvex(file) { | ||||
|     ScriptUtils.erasableLog("Handling", file) | ||||
|     const geoJson = JSON.parse(fs.readFileSync(file, "UTF8")) | ||||
|     const convex = GeoOperations.convexHull(geoJson, {concavity: 2}) | ||||
|     if (convex.properties === undefined) { | ||||
|         convex.properties = {} | ||||
|     } | ||||
|     fs.writeFileSync(file + ".convex.geojson", JSON.stringify(convex)) | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| let args = [...process.argv] | ||||
| args.splice(0, 2) | ||||
| args.forEach(file => { | ||||
|     try { | ||||
|         makeConvex(file) | ||||
|     } catch (e) { | ||||
|         console.error("Could not handle file ", file, " due to ", e) | ||||
|     } | ||||
| }) | ||||
							
								
								
									
										4
									
								
								scripts/postal_code_tools/genPostal.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scripts/postal_code_tools/genPostal.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| #! /bin/bash | ||||
| 
 | ||||
| npm run generate:layeroverview | ||||
| ts-node scripts/generateCache.ts postal_codes 8 /home/pietervdvn/Downloads/postal_codes 49.69606181911566 2.373046875 51.754240074033525 6.459960937499999 --generate-point-overview '*' --force-zoom-level 1 | ||||
							
								
								
									
										865
									
								
								scripts/postal_code_tools/knownPostalCodes.csv
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										865
									
								
								scripts/postal_code_tools/knownPostalCodes.csv
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,865 @@ | |||
| relation/3132739,9000 | ||||
| relation/3139053,9042 | ||||
| relation/3360497,2812 | ||||
| relation/3362712,2840 | ||||
| relation/3362870,2880 | ||||
| relation/3363489,2550 | ||||
| relation/3363494,2570 | ||||
| relation/3363502,2850 | ||||
| relation/3363503,2820 | ||||
| relation/3363507,2845 | ||||
| relation/3363508,2630 | ||||
| relation/3363512,2610 | ||||
| relation/3363513,2650 | ||||
| relation/3363518,2600 | ||||
| relation/3363519,2640 | ||||
| relation/3363541,2620 | ||||
| relation/3363542,2627 | ||||
| relation/3363543,2660 | ||||
| relation/3363545,2830 | ||||
| relation/3363546,2870 | ||||
| relation/3363558,2150 | ||||
| relation/3363559,2160 | ||||
| relation/3363560,2530 | ||||
| relation/3363561,2531 | ||||
| relation/3363578,2540 | ||||
| relation/3363579,2547 | ||||
| relation/3363583,2520 | ||||
| relation/3363592,2970 | ||||
| relation/3363595,2100 | ||||
| relation/3363596,2110 | ||||
| relation/3363734,2040 | ||||
| relation/3363834,2940 | ||||
| relation/3363845,2910 | ||||
| relation/3363847,2990 | ||||
| relation/3363868,2980 | ||||
| relation/3363869,2330 | ||||
| relation/3363873,2370 | ||||
| relation/3363878,2470 | ||||
| relation/3363879,2480 | ||||
| relation/3363881,2400 | ||||
| relation/3363885,2340 | ||||
| relation/3363886,2350 | ||||
| relation/3363890,2275 | ||||
| relation/3363892,2290 | ||||
| relation/3363893,2200 | ||||
| relation/3363894,2250 | ||||
| relation/3363897,2260 | ||||
| relation/3364558,2320 | ||||
| relation/3364559,2321 | ||||
| relation/3364560,2322 | ||||
| relation/3364561,2323 | ||||
| relation/3364562,2328 | ||||
| relation/3364725,2280 | ||||
| relation/3364726,2288 | ||||
| relation/3364735,2270 | ||||
| relation/3364739,2235 | ||||
| relation/3364741,2230 | ||||
| relation/3364742,2440 | ||||
| relation/3364743,2460 | ||||
| relation/3364745,2450 | ||||
| relation/3364748,3560 | ||||
| relation/3364754,3920 | ||||
| relation/3364759,3900 | ||||
| relation/3364761,3930 | ||||
| relation/3364762,3910 | ||||
| relation/3364768,3960 | ||||
| relation/3364769,3950 | ||||
| relation/3364771,3990 | ||||
| relation/3364772,3670 | ||||
| relation/3364789,3660 | ||||
| relation/3364795,3640 | ||||
| relation/3364804,3680 | ||||
| relation/3364806,3550 | ||||
| relation/3364812,3520 | ||||
| relation/3364813,3600 | ||||
| relation/3364815,3590 | ||||
| relation/3364821,3690 | ||||
| relation/3364825,3770 | ||||
| relation/3364826,3700 | ||||
| relation/3364827,3840 | ||||
| relation/3364829,3870 | ||||
| relation/3364833,3440 | ||||
| relation/3364835,3350 | ||||
| relation/3364836,3300 | ||||
| relation/3364838,4287 | ||||
| relation/3364841,1357 | ||||
| relation/3364842,3540 | ||||
| relation/3364845,3570 | ||||
| relation/3364847,3980 | ||||
| relation/3364848,3370 | ||||
| relation/3364851,3360 | ||||
| relation/3364852,3040 | ||||
| relation/3365424,2030 | ||||
| relation/3365426,2170 | ||||
| relation/3365439,2950 | ||||
| relation/3365440,2180 | ||||
| relation/3365441,2930 | ||||
| relation/3365442,2920 | ||||
| relation/3365443,2900 | ||||
| relation/3365444,2960 | ||||
| relation/3365445,2390 | ||||
| relation/3365447,2310 | ||||
| relation/3365684,2050 | ||||
| relation/3365779,2020 | ||||
| relation/3365990,2500 | ||||
| relation/3366032,2060 | ||||
| relation/3366102,2000 | ||||
| relation/3366103,2018 | ||||
| relation/3366216,2590 | ||||
| relation/3366218,2580 | ||||
| relation/3366219,2560 | ||||
| relation/3366245,3140 | ||||
| relation/3366247,3130 | ||||
| relation/3366250,3150 | ||||
| relation/3366251,1910 | ||||
| relation/3366254,1820 | ||||
| relation/3366255,1800 | ||||
| relation/3366258,1880 | ||||
| relation/3366260,1840 | ||||
| relation/3366261,9255 | ||||
| relation/3366264,1780 | ||||
| relation/3366265,1785 | ||||
| relation/3366268,2890 | ||||
| relation/3366269,1745 | ||||
| relation/3366272,9280 | ||||
| relation/3366273,9200 | ||||
| relation/3366275,9220 | ||||
| relation/3366276,9240 | ||||
| relation/3366277,9140 | ||||
| relation/3366282,9150 | ||||
| relation/3366288,2070 | ||||
| relation/3366289,9170 | ||||
| relation/3366292,9190 | ||||
| relation/3366294,9250 | ||||
| relation/3366296,9160 | ||||
| relation/3366298,9080 | ||||
| relation/3366299,9180 | ||||
| relation/3366301,9060 | ||||
| relation/3366302,9290 | ||||
| relation/3366305,9260 | ||||
| relation/3366308,9340 | ||||
| relation/3366309,9420 | ||||
| relation/3366312,9230 | ||||
| relation/3366318,9270 | ||||
| relation/3366320,9070 | ||||
| relation/3366321,9090 | ||||
| relation/3366325,9860 | ||||
| relation/3366344,9185 | ||||
| relation/3366347,9940 | ||||
| relation/3366348,9900 | ||||
| relation/3366355,9910 | ||||
| relation/3366358,8340 | ||||
| relation/3366360,8730 | ||||
| relation/3366362,8377 | ||||
| relation/3366364,8490 | ||||
| relation/3366366,8370 | ||||
| relation/3366383,2140 | ||||
| relation/3366390,8300 | ||||
| relation/3366392,8301 | ||||
| relation/3366396,8380 | ||||
| relation/3366400,8310 | ||||
| relation/3366410,8200 | ||||
| relation/3366411,8000 | ||||
| relation/3366414,8470 | ||||
| relation/3366415,8400 | ||||
| relation/3366421,8450 | ||||
| relation/3366423,8620 | ||||
| relation/3366426,8670 | ||||
| relation/3366427,8660 | ||||
| relation/3366428,8630 | ||||
| relation/3366433,8600 | ||||
| relation/3366434,8820 | ||||
| relation/3366435,8480 | ||||
| relation/3366436,8680 | ||||
| relation/3366442,8430 | ||||
| relation/3366446,8431 | ||||
| relation/3366454,8432 | ||||
| relation/3366457,8434 | ||||
| relation/3366462,8433 | ||||
| relation/3366463,3000 | ||||
| relation/3366464,3001 | ||||
| relation/3366465,3010 | ||||
| relation/3366466,3012 | ||||
| relation/3366467,3018 | ||||
| relation/3366516,3020 | ||||
| relation/3366517,3118 | ||||
| relation/3366561,3110 | ||||
| relation/3366562,3111 | ||||
| relation/3366812,8020 | ||||
| relation/3366814,8211 | ||||
| relation/3366818,8210 | ||||
| relation/3366820,8750 | ||||
| relation/3366822,8830 | ||||
| relation/3366823,8840 | ||||
| relation/3366829,8690 | ||||
| relation/3366830,8691 | ||||
| relation/3366874,8647 | ||||
| relation/3366876,8640 | ||||
| relation/3366879,8978 | ||||
| relation/3366883,8970 | ||||
| relation/3366888,8972 | ||||
| relation/3367188,8908 | ||||
| relation/3367195,8906 | ||||
| relation/3367200,8904 | ||||
| relation/3367229,8902 | ||||
| relation/3367235,8900 | ||||
| relation/3367255,8952 | ||||
| relation/3367260,8953 | ||||
| relation/3367485,8950 | ||||
| relation/3367488,8951 | ||||
| relation/3367525,8954 | ||||
| relation/3367526,8956 | ||||
| relation/3367528,8958 | ||||
| relation/3367534,8957 | ||||
| relation/3367536,8980 | ||||
| relation/3367990,8880 | ||||
| relation/3367991,8890 | ||||
| relation/3367995,8920 | ||||
| relation/3367997,8650 | ||||
| relation/3368005,8610 | ||||
| relation/3368013,8810 | ||||
| relation/3368014,8850 | ||||
| relation/3368033,8851 | ||||
| relation/3368036,8740 | ||||
| relation/3368038,8800 | ||||
| relation/3368047,8870 | ||||
| relation/3368056,8770 | ||||
| relation/3368057,8700 | ||||
| relation/3368059,8755 | ||||
| relation/3368064,8760 | ||||
| relation/3368066,8860 | ||||
| relation/3368070,8940 | ||||
| relation/3368084,8930 | ||||
| relation/3368087,8560 | ||||
| relation/3368088,8511 | ||||
| relation/3368096,8720 | ||||
| relation/3368099,8780 | ||||
| relation/3368101,8710 | ||||
| relation/3368108,8531 | ||||
| relation/3368115,8792 | ||||
| relation/3368119,8791 | ||||
| relation/3368120,8193 | ||||
| relation/3368124,8790 | ||||
| relation/3368132,8540 | ||||
| relation/3368143,8530 | ||||
| relation/3368151,8520 | ||||
| relation/3368162,8501 | ||||
| relation/3368167,8510 | ||||
| relation/3368549,8500 | ||||
| relation/3368551,8550 | ||||
| relation/3368552,8551 | ||||
| relation/3368553,8552 | ||||
| relation/3368866,8554 | ||||
| relation/3368867,8587 | ||||
| relation/3368870,8580 | ||||
| relation/3368872,8581 | ||||
| relation/3368875,8582 | ||||
| relation/3368878,8583 | ||||
| relation/3368879,8553 | ||||
| relation/3368881,8572 | ||||
| relation/3368884,8573 | ||||
| relation/3368890,8570 | ||||
| relation/3368898,9790 | ||||
| relation/3368899,9750 | ||||
| relation/3368903,9870 | ||||
| relation/3368904,9700 | ||||
| relation/3368906,9690 | ||||
| relation/3368908,9600 | ||||
| relation/3368920,9661 | ||||
| relation/3368951,9660 | ||||
| relation/3369135,2240 | ||||
| relation/3369136,2242 | ||||
| relation/3369137,2243 | ||||
| relation/3369141,2300 | ||||
| relation/3369143,2360 | ||||
| relation/3369202,2380 | ||||
| relation/3369203,2381 | ||||
| relation/3369204,2382 | ||||
| relation/3369409,2220 | ||||
| relation/3369410,2221 | ||||
| relation/3369411,2222 | ||||
| relation/3369412,2223 | ||||
| relation/3369532,2800 | ||||
| relation/3369533,2801 | ||||
| relation/3369534,2811 | ||||
| relation/3369670,2430 | ||||
| relation/3369671,2431 | ||||
| relation/3369708,2490 | ||||
| relation/3369709,2491 | ||||
| relation/3373522,9120 | ||||
| relation/3373523,9130 | ||||
| relation/3376627,9112 | ||||
| relation/3376836,9100 | ||||
| relation/3376837,9111 | ||||
| relation/3379410,1000 | ||||
| relation/3379411,1020 | ||||
| relation/3379412,1030 | ||||
| relation/3379413,1040 | ||||
| relation/3379414,1050 | ||||
| relation/3379415,1060 | ||||
| relation/3379416,1070 | ||||
| relation/3379417,1080 | ||||
| relation/3379418,1081 | ||||
| relation/3379419,1082 | ||||
| relation/3379420,1083 | ||||
| relation/3379421,1090 | ||||
| relation/3379422,1120 | ||||
| relation/3379423,1130 | ||||
| relation/3379424,1140 | ||||
| relation/3379425,1150 | ||||
| relation/3379426,1160 | ||||
| relation/3379427,1170 | ||||
| relation/3379428,1180 | ||||
| relation/3379429,1190 | ||||
| relation/3379430,1200 | ||||
| relation/3379431,1210 | ||||
| relation/3382866,1730 | ||||
| relation/3382867,1731 | ||||
| relation/3388165,2860 | ||||
| relation/3388166,2861 | ||||
| relation/3388219,9960 | ||||
| relation/3388220,9961 | ||||
| relation/3388221,9968 | ||||
| relation/3388426,9320 | ||||
| relation/3389084,9300 | ||||
| relation/3389085,9308 | ||||
| relation/3389086,9310 | ||||
| relation/3389796,9450 | ||||
| relation/3389797,9451 | ||||
| relation/3389820,9403 | ||||
| relation/3389821,9406 | ||||
| relation/3390349,9400 | ||||
| relation/3390350,9401 | ||||
| relation/3390351,9402 | ||||
| relation/3390352,9404 | ||||
| relation/3390505,9470 | ||||
| relation/3390506,9472 | ||||
| relation/3390507,9473 | ||||
| relation/3395144,9040 | ||||
| relation/3395438,9500 | ||||
| relation/3395439,9506 | ||||
| relation/3395501,9550 | ||||
| relation/3395502,9551 | ||||
| relation/3395503,9552 | ||||
| relation/3395517,9620 | ||||
| relation/3395616,9570 | ||||
| relation/3395617,9571 | ||||
| relation/3395618,9572 | ||||
| relation/3396269,9520 | ||||
| relation/3396270,9521 | ||||
| relation/3401812,9680 | ||||
| relation/3401813,9681 | ||||
| relation/3401814,9688 | ||||
| relation/3402433,9630 | ||||
| relation/3402434,9636 | ||||
| relation/3402455,9890 | ||||
| relation/3402463,9820 | ||||
| relation/3402467,9667 | ||||
| relation/3402498,9770 | ||||
| relation/3402499,9771 | ||||
| relation/3402512,9810 | ||||
| relation/3402518,9840 | ||||
| relation/3402538,9830 | ||||
| relation/3402539,9831 | ||||
| relation/3402546,9800 | ||||
| relation/3402556,9920 | ||||
| relation/3402557,9921 | ||||
| relation/3402566,9950 | ||||
| relation/3402584,9772 | ||||
| relation/3464939,9990 | ||||
| relation/3464940,9991 | ||||
| relation/3464941,9992 | ||||
| relation/3465067,9980 | ||||
| relation/3465068,9988 | ||||
| relation/3465069,9981 | ||||
| relation/3465070,9982 | ||||
| relation/3465093,9970 | ||||
| relation/3465094,9971 | ||||
| relation/3465186,9930 | ||||
| relation/3465187,9931 | ||||
| relation/3465188,9932 | ||||
| relation/3465267,9850 | ||||
| relation/3465316,9880 | ||||
| relation/3465317,9881 | ||||
| relation/3465327,8421 | ||||
| relation/3465330,8420 | ||||
| relation/3465348,8460 | ||||
| relation/3465364,1860 | ||||
| relation/3465365,1861 | ||||
| relation/3479470,3190 | ||||
| relation/3479471,3191 | ||||
| relation/3479494,1980 | ||||
| relation/3479495,1981 | ||||
| relation/3479536,1850 | ||||
| relation/3479537,1851 | ||||
| relation/3479538,1852 | ||||
| relation/3479539,1853 | ||||
| relation/3479592,1830 | ||||
| relation/3479593,1831 | ||||
| relation/3479621,3070 | ||||
| relation/3479622,3071 | ||||
| relation/3479623,3078 | ||||
| relation/3479665,1930 | ||||
| relation/3479666,1932 | ||||
| relation/3479667,1933 | ||||
| relation/3479696,3080 | ||||
| relation/3479742,1970 | ||||
| relation/3479744,1950 | ||||
| relation/3479747,3090 | ||||
| relation/3479750,1560 | ||||
| relation/3479798,3060 | ||||
| relation/3479799,3061 | ||||
| relation/3479847,3050 | ||||
| relation/3479848,3051 | ||||
| relation/3479849,3052 | ||||
| relation/3479850,3053 | ||||
| relation/3479851,3054 | ||||
| relation/3479860,1982 | ||||
| relation/3754121,9050 | ||||
| relation/3754122,9051 | ||||
| relation/3867174,3120 | ||||
| relation/3867175,3128 | ||||
| relation/3891769,3945 | ||||
| relation/3891778,3545 | ||||
| relation/3895654,3970 | ||||
| relation/3895655,3971 | ||||
| relation/3929631,3940 | ||||
| relation/3929632,3941 | ||||
| relation/3930000,3581 | ||||
| relation/3930143,3583 | ||||
| relation/3931049,3580 | ||||
| relation/3931050,3582 | ||||
| relation/3939002,3530 | ||||
| relation/3942151,3850 | ||||
| relation/3942525,3210 | ||||
| relation/3942526,3211 | ||||
| relation/3942527,3212 | ||||
| relation/3942584,1790 | ||||
| relation/3942585,1770 | ||||
| relation/3942600,1547 | ||||
| relation/3942703,1570 | ||||
| relation/3942876,1755 | ||||
| relation/3942878,1750 | ||||
| relation/3942890,1620 | ||||
| relation/3942912,1630 | ||||
| relation/3942913,1640 | ||||
| relation/3943013,9032 | ||||
| relation/3943014,9041 | ||||
| relation/3943048,9030 | ||||
| relation/3943055,9031 | ||||
| relation/3943102,9052 | ||||
| relation/3945536,3220 | ||||
| relation/3945537,3221 | ||||
| relation/3950158,1740 | ||||
| relation/3950159,1741 | ||||
| relation/3950160,1742 | ||||
| relation/3953991,1761 | ||||
| relation/3954045,1760 | ||||
| relation/3962684,1702 | ||||
| relation/3964740,3320 | ||||
| relation/3964741,3321 | ||||
| relation/3977259,3717 | ||||
| relation/4011593,1703 | ||||
| relation/4012641,1700 | ||||
| relation/4012642,1701 | ||||
| relation/4017007,7730 | ||||
| relation/4017128,7760 | ||||
| relation/4017129,7750 | ||||
| relation/4017304,7611 | ||||
| relation/4017305,7610 | ||||
| relation/4017306,7618 | ||||
| relation/4017348,7624 | ||||
| relation/4017358,7623 | ||||
| relation/4017376,7621 | ||||
| relation/4017450,7620 | ||||
| relation/4017452,7622 | ||||
| relation/4017512,7643 | ||||
| relation/4017569,7642 | ||||
| relation/4017570,7641 | ||||
| relation/4017582,7640 | ||||
| relation/4017842,7350 | ||||
| relation/4017852,7382 | ||||
| relation/4017853,7380 | ||||
| relation/4018917,7370 | ||||
| relation/4062084,7600 | ||||
| relation/4062085,7601 | ||||
| relation/4069650,7340 | ||||
| relation/4069687,7080 | ||||
| relation/4072281,7390 | ||||
| relation/4072445,7050 | ||||
| relation/4072459,7870 | ||||
| relation/4072510,7830 | ||||
| relation/4072511,7850 | ||||
| relation/4072560,1430 | ||||
| relation/4072656,7090 | ||||
| relation/4072686,7070 | ||||
| relation/4103968,1650 | ||||
| relation/4103969,1651 | ||||
| relation/4103970,1652 | ||||
| relation/4103971,1653 | ||||
| relation/4103972,1654 | ||||
| relation/4104019,1601 | ||||
| relation/4104200,1600 | ||||
| relation/4104201,1602 | ||||
| relation/4105502,1501 | ||||
| relation/4105926,1500 | ||||
| relation/4105927,1502 | ||||
| relation/4108139,1671 | ||||
| relation/4109781,1670 | ||||
| relation/4109782,1673 | ||||
| relation/4109783,1674 | ||||
| relation/4109911,1540 | ||||
| relation/4109912,1541 | ||||
| relation/4186134,3501 | ||||
| relation/4189269,3500 | ||||
| relation/4193628,3512 | ||||
| relation/4196096,3510 | ||||
| relation/4196328,3650 | ||||
| relation/4198359,3511 | ||||
| relation/4203185,7170 | ||||
| relation/4203186,7160 | ||||
| relation/4215710,3665 | ||||
| relation/4215711,3668 | ||||
| relation/4218236,7120 | ||||
| relation/4218237,6560 | ||||
| relation/4218238,6567 | ||||
| relation/4220905,6470 | ||||
| relation/4235983,6000 | ||||
| relation/4236044,6001 | ||||
| relation/4236045,6010 | ||||
| relation/4236122,6020 | ||||
| relation/4236123,6030 | ||||
| relation/4236155,6031 | ||||
| relation/4236156,6032 | ||||
| relation/4236191,6040 | ||||
| relation/4236198,6041 | ||||
| relation/4236232,6042 | ||||
| relation/4236233,6043 | ||||
| relation/4236263,6044 | ||||
| relation/4236299,6060 | ||||
| relation/4236300,6061 | ||||
| relation/4238953,6120 | ||||
| relation/4238988,6150 | ||||
| relation/4239031,6200 | ||||
| relation/4239038,6211 | ||||
| relation/4239165,6210 | ||||
| relation/4240188,6224 | ||||
| relation/4240192,6223 | ||||
| relation/4240196,6222 | ||||
| relation/4240197,6221 | ||||
| relation/4240223,6220 | ||||
| relation/4253515,6230 | ||||
| relation/4253516,6238 | ||||
| relation/4253571,6240 | ||||
| relation/4253578,6250 | ||||
| relation/4253589,6280 | ||||
| relation/4253627,7180 | ||||
| relation/4253628,7181 | ||||
| relation/4253646,6500 | ||||
| relation/4253647,6511 | ||||
| relation/4253781,1480 | ||||
| relation/4473118,3830 | ||||
| relation/4476408,3730 | ||||
| relation/4478844,3200 | ||||
| relation/4478891,3201 | ||||
| relation/4478892,3202 | ||||
| relation/4479876,3831 | ||||
| relation/4479877,3832 | ||||
| relation/4479929,3720 | ||||
| relation/4479930,3721 | ||||
| relation/4479931,3722 | ||||
| relation/4479932,3723 | ||||
| relation/4479933,3724 | ||||
| relation/4479946,3732 | ||||
| relation/4480724,3293 | ||||
| relation/4480743,3290 | ||||
| relation/4480744,3294 | ||||
| relation/4482775,3746 | ||||
| relation/4492492,3270 | ||||
| relation/4493465,3742 | ||||
| relation/4494368,3271 | ||||
| relation/4494369,3272 | ||||
| relation/4497124,3798 | ||||
| relation/4497188,3792 | ||||
| relation/4497356,3790 | ||||
| relation/4497379,3791 | ||||
| relation/4497380,3793 | ||||
| relation/4635621,3390 | ||||
| relation/4635622,3391 | ||||
| relation/4636469,3460 | ||||
| relation/4636470,3461 | ||||
| relation/4641362,3450 | ||||
| relation/4641363,3454 | ||||
| relation/4642674,3380 | ||||
| relation/4642675,3381 | ||||
| relation/4642676,3384 | ||||
| relation/4644584,3473 | ||||
| relation/4644666,3472 | ||||
| relation/4644681,3470 | ||||
| relation/4644682,3471 | ||||
| relation/4677616,3401 | ||||
| relation/4677870,3404 | ||||
| relation/4678417,3400 | ||||
| relation/4681897,3800 | ||||
| relation/4681898,3803 | ||||
| relation/4681899,3806 | ||||
| relation/4713840,3740 | ||||
| relation/4714602,3621 | ||||
| relation/4714658,3620 | ||||
| relation/4717645,3631 | ||||
| relation/4717688,3630 | ||||
| relation/4720905,3890 | ||||
| relation/4720907,3891 | ||||
| relation/4727591,1315 | ||||
| relation/4727592,1320 | ||||
| relation/4727593,1350 | ||||
| relation/4727594,1360 | ||||
| relation/4727595,1367 | ||||
| relation/4727596,1370 | ||||
| relation/4727602,1390 | ||||
| relation/4727606,1325 | ||||
| relation/4727607,1457 | ||||
| relation/4727631,1310 | ||||
| relation/4727632,1331 | ||||
| relation/4727641,1330 | ||||
| relation/4727642,1332 | ||||
| relation/4727648,1410 | ||||
| relation/4727654,1380 | ||||
| relation/4727658,1440 | ||||
| relation/4727668,1420 | ||||
| relation/4727671,1421 | ||||
| relation/4727712,1460 | ||||
| relation/4727713,1461 | ||||
| relation/4727724,1435 | ||||
| relation/4727727,1450 | ||||
| relation/4727732,1495 | ||||
| relation/4727733,1490 | ||||
| relation/4727759,1342 | ||||
| relation/4727761,1341 | ||||
| relation/4728040,7608 | ||||
| relation/5720163,1428 | ||||
| relation/5721127,1401 | ||||
| relation/5721133,1404 | ||||
| relation/5724081,1402 | ||||
| relation/5724100,1400 | ||||
| relation/5724109,1476 | ||||
| relation/5724114,1473 | ||||
| relation/5724115,1471 | ||||
| relation/5724131,1474 | ||||
| relation/5724280,1472 | ||||
| relation/5724305,1470 | ||||
| relation/5726870,5140 | ||||
| relation/6343119,1300 | ||||
| relation/6517171,59150 | ||||
| relation/8345160,1340 | ||||
| relation/8345161,1348 | ||||
| relation/9520110,7940 | ||||
| relation/9622112,6724 | ||||
| relation/9706199,4970 | ||||
| relation/9706200,4960 | ||||
| relation/9708979,4790 | ||||
| relation/9721913,4760 | ||||
| relation/9721914,4750 | ||||
| relation/9721915,4770 | ||||
| relation/9721916,4950 | ||||
| relation/9721917,4780 | ||||
| relation/9724931,5150 | ||||
| relation/9730734,4987 | ||||
| relation/9792735,4990 | ||||
| relation/9938886,4837 | ||||
| relation/9970249,4820 | ||||
| relation/9970250,4821 | ||||
| relation/10143396,4877 | ||||
| relation/10184618,4870 | ||||
| relation/10184619,4861 | ||||
| relation/10184620,4860 | ||||
| relation/10284874,4845 | ||||
| relation/10284875,4910 | ||||
| relation/10284876,4900 | ||||
| relation/10308690,6700 | ||||
| relation/10308691,6704 | ||||
| relation/10308692,6706 | ||||
| relation/10312732,6721 | ||||
| relation/10312733,6720 | ||||
| relation/10312734,6723 | ||||
| relation/10619232,6792 | ||||
| relation/10626187,6630 | ||||
| relation/10626251,6840 | ||||
| relation/10626571,6717 | ||||
| relation/10632750,6747 | ||||
| relation/10707212,6780 | ||||
| relation/10893681,4920 | ||||
| relation/10953767,6890 | ||||
| relation/10973142,4141 | ||||
| relation/10973143,4140 | ||||
| relation/11074457,4190 | ||||
| relation/11133193,4180 | ||||
| relation/11133194,4181 | ||||
| relation/11152476,6990 | ||||
| relation/11152477,6997 | ||||
| relation/11152478,6960 | ||||
| relation/11230847,6637 | ||||
| relation/11278663,6987 | ||||
| relation/11294782,6860 | ||||
| relation/11331902,6640 | ||||
| relation/11384736,6600 | ||||
| relation/11485371,6687 | ||||
| relation/11583045,7783 | ||||
| relation/11583046,7782 | ||||
| relation/11583047,7784 | ||||
| relation/11583048,7780 | ||||
| relation/11583049,7781 | ||||
| relation/11584131,7711 | ||||
| relation/11584132,7712 | ||||
| relation/11584133,7700 | ||||
| relation/11599903,7880 | ||||
| relation/11599904,7890 | ||||
| relation/11611417,4130 | ||||
| relation/11611430,7860 | ||||
| relation/11726320,4653 | ||||
| relation/11726410,4654 | ||||
| relation/11736448,4651 | ||||
| relation/11736449,4652 | ||||
| relation/11736450,4650 | ||||
| relation/11798622,4890 | ||||
| relation/11820267,4880 | ||||
| relation/11866085,6343 | ||||
| relation/11965721,4841 | ||||
| relation/11965722,4840 | ||||
| relation/12006674,6760 | ||||
| relation/12009767,6769 | ||||
| relation/12009804,6730 | ||||
| relation/12077869,6782 | ||||
| relation/12077908,6781 | ||||
| relation/12077926,6741 | ||||
| relation/12077964,6813 | ||||
| relation/12077971,6740 | ||||
| relation/12078017,6742 | ||||
| relation/12095656,4721 | ||||
| relation/12095657,4720 | ||||
| relation/12095658,4728 | ||||
| relation/12108800,6812 | ||||
| relation/12108822,6811 | ||||
| relation/12108981,6810 | ||||
| relation/12109042,6823 | ||||
| relation/12115031,6820 | ||||
| relation/12142985,4731 | ||||
| relation/12142986,4730 | ||||
| relation/12192340,4701 | ||||
| relation/12192341,4700 | ||||
| relation/12192342,4710 | ||||
| relation/12192343,4711 | ||||
| relation/12215466,6887 | ||||
| relation/12215660,6824 | ||||
| relation/12215687,6821 | ||||
| relation/12215831,6831 | ||||
| relation/12215896,6836 | ||||
| relation/12247586,4590 | ||||
| relation/12265101,4161 | ||||
| relation/12265102,4162 | ||||
| relation/12265103,4163 | ||||
| relation/12265104,4160 | ||||
| relation/12431129,4560 | ||||
| relation/12452305,4577 | ||||
| relation/12472225,4570 | ||||
| relation/12476593,4520 | ||||
| relation/12476594,4500 | ||||
| relation/12481068,4550 | ||||
| relation/12481069,4557 | ||||
| relation/12553251,4217 | ||||
| relation/12553252,4210 | ||||
| relation/12575264,4218 | ||||
| relation/12593511,4480 | ||||
| relation/12593512,4537 | ||||
| relation/12593513,4470 | ||||
| relation/12593514,4540 | ||||
| relation/12612191,4530 | ||||
| relation/12616025,6800 | ||||
| relation/12616487,6830 | ||||
| relation/12616501,6832 | ||||
| relation/12616681,6880 | ||||
| relation/12751422,4260 | ||||
| relation/12751423,4280 | ||||
| relation/12751424,4357 | ||||
| relation/12751425,4350 | ||||
| relation/12751426,4360 | ||||
| relation/12751427,4367 | ||||
| relation/12751428,4300 | ||||
| relation/12751429,4250 | ||||
| relation/12751430,4257 | ||||
| relation/12818751,6681 | ||||
| relation/12818787,6680 | ||||
| relation/12888344,6661 | ||||
| relation/12888355,6666 | ||||
| relation/12888356,6663 | ||||
| relation/12888358,6660 | ||||
| relation/12888379,6662 | ||||
| relation/12888625,6688 | ||||
| relation/12888627,6686 | ||||
| relation/12901768,6673 | ||||
| relation/12901769,6674 | ||||
| relation/12901770,6670 | ||||
| relation/12901772,6672 | ||||
| relation/12901773,6671 | ||||
| relation/12901778,6692 | ||||
| relation/12901817,6690 | ||||
| relation/12901819,6698 | ||||
| relation/12904655,6984 | ||||
| relation/12904664,6983 | ||||
| relation/12904688,6986 | ||||
| relation/12904710,6972 | ||||
| relation/12904847,6982 | ||||
| relation/12904861,6980 | ||||
| relation/12904877,6971 | ||||
| relation/12904949,6970 | ||||
| relation/12910224,6870 | ||||
| relation/12911159,6927 | ||||
| relation/12911189,6852 | ||||
| relation/12911214,6856 | ||||
| relation/12911238,6850 | ||||
| relation/12911239,6851 | ||||
| relation/12911525,6924 | ||||
| relation/12911552,6920 | ||||
| relation/12911560,6922 | ||||
| relation/12911593,6921 | ||||
| relation/12911603,6853 | ||||
| relation/12911813,6838 | ||||
| relation/12911859,6834 | ||||
| relation/12911863,6833 | ||||
| relation/12922472,6929 | ||||
| relation/13006513,4219 | ||||
| relation/13017440,4261 | ||||
| relation/13017441,4263 | ||||
| relation/13072253,6940 | ||||
| relation/13072279,6941 | ||||
| relation/13075685,6951 | ||||
| relation/13075686,6952 | ||||
| relation/13075687,6900 | ||||
| relation/13075718,6950 | ||||
| relation/13075724,6953 | ||||
| relation/13163556,4347 | ||||
| relation/13219312,4351 | ||||
| relation/13238973,4317 | ||||
| relation/13241165,4252 | ||||
| relation/13241166,4253 | ||||
| relation/13241167,4254 | ||||
| relation/13281285,4420 | ||||
| relation/13281286,4400 | ||||
| relation/13281287,4460 | ||||
| relation/13330444,4610 | ||||
| relation/13330601,4608 | ||||
| relation/13330602,4606 | ||||
| relation/13330603,4607 | ||||
| relation/13375800,4672 | ||||
| relation/13375801,4671 | ||||
| relation/13375802,4670 | ||||
| relation/13435478,4624 | ||||
| relation/13435479,4623 | ||||
| relation/13435480,4621 | ||||
| relation/13435481,4620 | ||||
| relation/13436023,4631 | ||||
| relation/13436024,4632 | ||||
| relation/13436025,4633 | ||||
| relation/13436026,4630 | ||||
| relation/13529276,4791 | ||||
| 
 | 
							
								
								
									
										123
									
								
								scripts/postal_code_tools/openaddresses2geojson.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								scripts/postal_code_tools/openaddresses2geojson.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,123 @@ | |||
| import * as fs from "fs"; | ||||
| import * as readline from "readline"; | ||||
| import ScriptUtils from "./ScriptUtils"; | ||||
| import {existsSync, writeFileSync} from "fs"; | ||||
| import {GeoOperations} from "../Logic/GeoOperations"; | ||||
| import {Utils} from "../Utils"; | ||||
| import {post} from "jquery"; | ||||
| import {createECDH} from "crypto"; | ||||
| 
 | ||||
| /** | ||||
|  * Converts an open-address CSV file into a big geojson file | ||||
|  */ | ||||
| 
 | ||||
| async function main(args: string[]) { | ||||
| 
 | ||||
|     const inputFile = args[0] | ||||
|     const outputFile = args[1] | ||||
|     const fileStream = fs.createReadStream(inputFile); | ||||
|     const perPostalCode = args[2] == "--per-postal-code" | ||||
|     const rl = readline.createInterface({ | ||||
|         input: fileStream, | ||||
|         crlfDelay: Infinity | ||||
|     }); | ||||
|     // Note: we use the crlfDelay option to recognize all instances of CR LF
 | ||||
|     // ('\r\n') in input.txt as a single line break.
 | ||||
| 
 | ||||
|     const fields = [ | ||||
|         "EPSG:31370_x", "EPSG:31370_y", "EPSG:4326_lat", "EPSG:4326_lon", | ||||
|         "address_id", "box_number", | ||||
|         "house_number", "municipality_id", "municipality_name_de", "municipality_name_fr", "municipality_name_nl", "postcode", "postname_fr", | ||||
|         "postname_nl", "street_id", "streetname_de", "streetname_fr", "streetname_nl", "region_code", "status" | ||||
|     ] | ||||
| 
 | ||||
|     let i = 0; | ||||
|     let failed = 0 | ||||
|      | ||||
|     let createdFiles : string [] = [] | ||||
|     fs.writeFileSync(outputFile, "") | ||||
|     // @ts-ignore
 | ||||
|     for await (const line of rl) { | ||||
|         i++; | ||||
|         if (i % 10000 == 0) { | ||||
|             ScriptUtils.erasableLog("Converted ", i, "features (of which ", failed, "features don't have a coordinate)") | ||||
|         } | ||||
|         const data = line.split(",") | ||||
|         const parsed: any = {} | ||||
|         for (let i = 0; i < fields.length; i++) { | ||||
|             const field = fields[i]; | ||||
|             parsed[field] = data[i] | ||||
|         } | ||||
|         const lat = Number(parsed["EPSG:4326_lat"]) | ||||
|         const lon = Number(parsed["EPSG:4326_lon"]) | ||||
| 
 | ||||
|         if (parsed["EPSG:31370_x"] === "0.0") { | ||||
|             failed++ | ||||
|             continue | ||||
|         } | ||||
| 
 | ||||
|         delete parsed["EPSG:4326_lat"] | ||||
|         delete parsed["EPSG:4326_lon"] | ||||
|         delete parsed["EPSG:31370_x"] | ||||
|         delete parsed["EPSG:31370_y"] | ||||
|         delete parsed["EPSG:4326_lat"] | ||||
|         delete parsed["EPSG:4326_lat"] | ||||
| 
 | ||||
|         let targetFile = outputFile | ||||
|         if (perPostalCode) { | ||||
|             targetFile = outputFile + "-" + parsed["postcode"] + ".geojson" | ||||
|             let isFirst = false | ||||
|             if(!existsSync(targetFile)){ | ||||
|                 writeFileSync(targetFile, '{ "type":"FeatureCollection", "features":[') | ||||
|                 createdFiles.push(targetFile) | ||||
|                 isFirst = true | ||||
|             } | ||||
|              | ||||
|             if(!isFirst){ | ||||
|                 fs.appendFileSync(targetFile, ",\n") | ||||
|             } | ||||
| 
 | ||||
|             fs.appendFileSync(targetFile, JSON.stringify({ | ||||
|                 type: "Feature", | ||||
|                 properties: parsed, | ||||
|                 geometry: { | ||||
|                     type: "Point", | ||||
|                     coordinates: [lon, lat] | ||||
|                 } | ||||
|             })) | ||||
|              | ||||
|         }else{ | ||||
|              | ||||
| 
 | ||||
|         fs.appendFileSync(outputFile, JSON.stringify({ | ||||
|             type: "Feature", | ||||
|             properties: parsed, | ||||
|             geometry: { | ||||
|                 type: "Point", | ||||
|                 coordinates: [lon, lat] | ||||
|             } | ||||
|         }) + "\n") | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     console.log("Closing files...") | ||||
|     createdFiles.sort() | ||||
|     for (const createdFile of createdFiles) { | ||||
|         ScriptUtils.erasableLog("Closing ", createdFile, "and creating convex hull") | ||||
|         fs.appendFileSync(createdFile, "]}") | ||||
|     } | ||||
|      | ||||
|     console.log("Done! Converted ", i, "features (of which ", failed, "features don't have a coordinate)") | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| let args = [...process.argv] | ||||
| args.splice(0, 2) | ||||
| 
 | ||||
| if (args.length == 0) { | ||||
|     console.log("USAGE: input-csv-file output.newline-delimited-geojson.json [--per-postal-code]") | ||||
| } else { | ||||
|     main(args).catch(e => console.error(e)) | ||||
| } | ||||
							
								
								
									
										55
									
								
								scripts/postal_code_tools/prepPostalCodesHulls.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								scripts/postal_code_tools/prepPostalCodesHulls.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | |||
| import * as fs from "fs"; | ||||
| import ScriptUtils from "./ScriptUtils"; | ||||
| import {post} from "jquery"; | ||||
| import {writeFileSync} from "fs"; | ||||
| 
 | ||||
| function handleFile(file: string, postalCode: number) { | ||||
| 
 | ||||
|     const geojson = JSON.parse(fs.readFileSync(file, "UTF8")) | ||||
|     geojson.properties = { | ||||
|         type: "boundary", | ||||
|         "boundary": "postal_code", | ||||
|         "postal_code": postalCode + "" | ||||
|     } | ||||
|     return geojson | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function getKnownPostalCodes(): number[] { | ||||
|     return fs.readFileSync("./scripts/postal_code_tools/knownPostalCodes.csv", "UTF8").split("\n") | ||||
|         .map(line => Number(line.split(",")[1])) | ||||
| } | ||||
| 
 | ||||
| function main(args: string[]) { | ||||
|     const dir = args[0] | ||||
|     const knownPostals = new Set<number>(getKnownPostalCodes()) | ||||
|     const files = ScriptUtils.readDirRecSync(dir, 1) | ||||
|     const allFiles = [] | ||||
|     const skipped = [] | ||||
|     for (const file of files) { | ||||
|         const nameParts = file.split("-") | ||||
|         const postalCodeStr = nameParts[nameParts.length - 1] | ||||
|         const postalCode = Number(postalCodeStr.substr(0, postalCodeStr.length - ".geojson.convex.geojson".length)) | ||||
|         if (isNaN(postalCode)) { | ||||
|             console.error("Not a number: ", postalCodeStr) | ||||
|             continue | ||||
|         } | ||||
|         if (knownPostals.has(postalCode)) { | ||||
|             skipped.push(postalCode) | ||||
|             ScriptUtils.erasableLog("Skipping boundary for ", postalCode, "as it is already known - skipped ", skipped.length, "already") | ||||
|             continue | ||||
|         } | ||||
|         allFiles.push(handleFile(file, postalCode)) | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     writeFileSync("all_postal_codes_filtered.geojson", JSON.stringify({ | ||||
|         type: "FeatureCollection", | ||||
|         features: allFiles | ||||
|     })) | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| let args = [...process.argv] | ||||
| args.splice(0, 2) | ||||
| main(args) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue