diff --git a/index.js b/index.js index a677cc62..8ac22a30 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ var OverpassLayer = require('overpass-layer') var OverpassLayerList = require('overpass-layer').List var OverpassFrontend = require('overpass-frontend') -var OpenStreetBrowserCategory = require('./src/OpenStreetBrowserCategory') +var OpenStreetBrowserLoader = require('./src/OpenStreetBrowserLoader') var map @@ -20,6 +20,8 @@ window.onload = function() { ) osm_mapnik.addTo(map) - var category = new OpenStreetBrowserCategory("gastro") - category.addTo(map, document.getElementById('info')) + + OpenStreetBrowserLoader('gastro', function (err, category) { + category.addTo(map, document.getElementById('info')) + }) } diff --git a/src/OpenStreetBrowserCategory.js b/src/OpenStreetBrowserCategory.js index 4c1cab21..cebe0f17 100644 --- a/src/OpenStreetBrowserCategory.js +++ b/src/OpenStreetBrowserCategory.js @@ -1,34 +1,16 @@ 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() +function OpenStreetBrowserCategory (data) { + this.layer = new OverpassLayer(data.query, data) } 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 - } + this.layer.addTo(this.map) + new OverpassLayerList(this.parentDom, this.layer); } module.exports = OpenStreetBrowserCategory diff --git a/src/OpenStreetBrowserLoader.js b/src/OpenStreetBrowserLoader.js new file mode 100644 index 00000000..bc1fe9a6 --- /dev/null +++ b/src/OpenStreetBrowserLoader.js @@ -0,0 +1,19 @@ +var OpenStreetBrowserIndex = require('./OpenStreetBrowserIndex') +var OpenStreetBrowserCategory = require('./OpenStreetBrowserCategory') + +function OpenStreetBrowserLoader (id, callback) { + function reqListener (req) { + var data = JSON.parse(req.responseText) + + var layer = new OpenStreetBrowserCategory(data) + + callback(null, layer) + } + + var req = new XMLHttpRequest() + req.addEventListener("load", reqListener.bind(this, req)) + req.open("GET", "categories/" + id + ".json") + req.send() +} + +module.exports = OpenStreetBrowserLoader