You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
846 B
34 lines
846 B
var OverpassLayer = require('overpass-layer')
|
|
var OverpassLayerList = require('overpass-layer').List
|
|
|
|
function OpenStreetBrowserCategory (id) {
|
|
function reqListener (req) {
|
|
var data = JSON.parse(req.responseText)
|
|
|
|
this.layer = new OverpassLayer(data.query, data)
|
|
|
|
if (this.autoAdd) {
|
|
this.addTo(this.map, this.parentDom)
|
|
this.autoAdd = false
|
|
}
|
|
}
|
|
|
|
var req = new XMLHttpRequest()
|
|
req.addEventListener("load", reqListener.bind(this, req))
|
|
req.open("GET", "categories/" + id + ".json")
|
|
req.send()
|
|
}
|
|
|
|
OpenStreetBrowserCategory.prototype.addTo = function (map, parentDom) {
|
|
this.map = map
|
|
this.parentDom = parentDom
|
|
|
|
if (this.layer) {
|
|
this.layer.addTo(this.map)
|
|
new OverpassLayerList(this.parentDom, this.layer);
|
|
} else {
|
|
this.autoAdd = true
|
|
}
|
|
}
|
|
|
|
module.exports = OpenStreetBrowserCategory
|