forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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"
 | 
						|
const fs = require("fs")
 | 
						|
class DownloadFromOverpass extends Script {
 | 
						|
    constructor() {
 | 
						|
        super(
 | 
						|
            "Downloads data from openstreetmap, will save this as 'export.geojson'. All arguments will be interpreted as key=value pairs"
 | 
						|
        )
 | 
						|
    }
 | 
						|
    async main(args: string[]): Promise<void> {
 | 
						|
        const tags = new And(args.map((k) => TagUtils.Tag(k)))
 | 
						|
        const overpass = new Overpass(
 | 
						|
            tags,
 | 
						|
            [],
 | 
						|
            Constants.defaultOverpassUrls[0],
 | 
						|
            new ImmutableStore(500)
 | 
						|
        )
 | 
						|
        const [data, _] = await overpass.queryGeoJson(BBox.global)
 | 
						|
        fs.writeFileSync("export.geojson", JSON.stringify(data), "utf8")
 | 
						|
        console.log("Written", data.features.length, "entries")
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
new DownloadFromOverpass().run()
 |