| 
									
										
										
										
											2023-05-07 23:50:39 +02:00
										 |  |  | import Script from "./Script" | 
					
						
							|  |  |  | import { TagUtils } from "../Logic/Tags/TagUtils" | 
					
						
							|  |  |  | import { And } from "../Logic/Tags/And" | 
					
						
							|  |  |  | import Constants from "../Models/Constants" | 
					
						
							|  |  |  | import { ImmutableStore } from "../Logic/UIEventSource" | 
					
						
							|  |  |  | import { BBox } from "../Logic/BBox" | 
					
						
							|  |  |  | import { Overpass } from "../Logic/Osm/Overpass" | 
					
						
							| 
									
										
										
										
											2023-04-20 23:13:09 +02:00
										 |  |  | const fs = require("fs") | 
					
						
							|  |  |  | class DownloadFromOverpass extends Script { | 
					
						
							|  |  |  |     constructor() { | 
					
						
							| 
									
										
										
										
											2023-05-07 23:50:39 +02:00
										 |  |  |         super( | 
					
						
							|  |  |  |             "Downloads data from openstreetmap, will save this as 'export.geojson'. All arguments will be interpreted as key=value pairs" | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2023-04-20 23:13:09 +02:00
										 |  |  |     } | 
					
						
							|  |  |  |     async main(args: string[]): Promise<void> { | 
					
						
							| 
									
										
										
										
											2023-05-07 23:50:39 +02:00
										 |  |  |         const tags = new And(args.map((k) => TagUtils.Tag(k))) | 
					
						
							|  |  |  |         const overpass = new Overpass( | 
					
						
							|  |  |  |             tags, | 
					
						
							|  |  |  |             [], | 
					
						
							|  |  |  |             Constants.defaultOverpassUrls[0], | 
					
						
							|  |  |  |             new ImmutableStore(500) | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2023-04-20 23:13:09 +02:00
										 |  |  |         const [data, _] = await overpass.queryGeoJson(BBox.global) | 
					
						
							|  |  |  |         fs.writeFileSync("export.geojson", JSON.stringify(data), "utf8") | 
					
						
							| 
									
										
										
										
											2023-05-07 23:50:39 +02:00
										 |  |  |         console.log("Written", data.features.length, "entries") | 
					
						
							| 
									
										
										
										
											2023-04-20 23:13:09 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | new DownloadFromOverpass().run() |