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({ | const dummyLayout = new LayoutConfig({ | ||||||
|     language: ["en"], |     language: ["en"], | ||||||
|     id: "<theme>", |     id: ">theme<", | ||||||
|     maintainer: "pietervdvn", |     maintainer: "pietervdvn", | ||||||
|     version: "0", |     version: "0", | ||||||
|     title: "<theme>", |     title: "<theme>", | ||||||
|  | @ -63,7 +63,7 @@ const dummyLayout = new LayoutConfig({ | ||||||
|     layers: [ |     layers: [ | ||||||
|         { |         { | ||||||
|             name: "<layer>", |             name: "<layer>", | ||||||
|             id: "<layer>", |             id: "<layer>", | ||||||
|             source: { |             source: { | ||||||
|                 osmTags: "id~*" |                 osmTags: "id~*" | ||||||
|             }, |             }, | ||||||
|  | @ -75,7 +75,7 @@ const dummyLayout = new LayoutConfig({ | ||||||
| 
 | 
 | ||||||
| new FeatureSwitchState(dummyLayout) | 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"]) | 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