Remove "/brouter?" from URL
This commit is contained in:
parent
9b52a938ab
commit
ac57250b7e
3 changed files with 52 additions and 44 deletions
|
|
@ -124,10 +124,14 @@ BR.Map = {
|
||||||
BR.debug = BR.debug || {};
|
BR.debug = BR.debug || {};
|
||||||
BR.debug.map = map;
|
BR.debug.map = map;
|
||||||
|
|
||||||
|
var layersAndOverlays = baseLayers;
|
||||||
|
for (var o in overlays) {
|
||||||
|
layersAndOverlays[o] = overlays[o];
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
map: map,
|
map: map,
|
||||||
layersControl: layersControl,
|
layersControl: layersControl,
|
||||||
layers: baseLayers
|
layers: layersAndOverlays
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
58
js/index.js
58
js/index.js
|
|
@ -235,38 +235,21 @@
|
||||||
router.setOptions(routingOptions.getOptions());
|
router.setOptions(routingOptions.getOptions());
|
||||||
profile.update(routingOptions.getOptions());
|
profile.update(routingOptions.getOptions());
|
||||||
|
|
||||||
urlHash = new L.Hash(map, mapLayers, function() {
|
var onHashChangeCb = function(url) {
|
||||||
return router.getUrl(routing.getWaypoints(), null);
|
var url2params = function (s) {
|
||||||
});
|
var p = {};
|
||||||
routingOptions.on('update', urlHash.updateHash, urlHash);
|
var sep = '&';
|
||||||
nogos.on('update', urlHash.updateHash, urlHash);
|
if (s.search('&') !== -1)
|
||||||
// waypoint add, move, delete (but last)
|
sep = '&';
|
||||||
routing.on('routing:routeWaypointEnd', urlHash.updateHash, urlHash);
|
var params = s.split(sep);
|
||||||
// delete last waypoint
|
for (var i = 0; i < params.length; i++) {
|
||||||
routing.on('waypoint:click', function (evt) {
|
var tmp = params[i].split('=');
|
||||||
var r = evt.marker._routing;
|
if (tmp.length !== 2) continue;
|
||||||
if (!r.prevMarker && !r.nextMarker) {
|
p[tmp[0]] = decodeURIComponent(tmp[1]);
|
||||||
urlHash.updateHash();
|
}
|
||||||
|
return p;
|
||||||
}
|
}
|
||||||
}, urlHash);
|
|
||||||
|
|
||||||
var url2params = function (s) {
|
|
||||||
var p = {};
|
|
||||||
var sep = '&';
|
|
||||||
if (s.search('&') !== -1)
|
|
||||||
sep = '&';
|
|
||||||
var params = s.split(sep);
|
|
||||||
for (var i = 0; i < params.length; i++) {
|
|
||||||
var tmp = params[i].split('=');
|
|
||||||
if (tmp.length !== 2) continue;
|
|
||||||
p[tmp[0]] = decodeURIComponent(tmp[1]);
|
|
||||||
}
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
urlHash.onHashChangeCb = function(url) {
|
|
||||||
if (url == null) return;
|
if (url == null) return;
|
||||||
url = url.substr('brouter?'.length);
|
|
||||||
var opts = router.parseUrlParams(url2params(url));
|
var opts = router.parseUrlParams(url2params(url));
|
||||||
router.setOptions(opts);
|
router.setOptions(opts);
|
||||||
routingOptions.setOptions(opts);
|
routingOptions.setOptions(opts);
|
||||||
|
|
@ -280,6 +263,21 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
urlHash = new L.Hash(map, mapLayers, function() {
|
||||||
|
var url = router.getUrl(routing.getWaypoints(), null);
|
||||||
|
return "&" + url.substr('brouter?'.length + 1);
|
||||||
|
}, onHashChangeCb);
|
||||||
|
routingOptions.on('update', urlHash.updateHash, urlHash);
|
||||||
|
nogos.on('update', urlHash.updateHash, urlHash);
|
||||||
|
// waypoint add, move, delete (but last)
|
||||||
|
routing.on('routing:routeWaypointEnd', urlHash.updateHash, urlHash);
|
||||||
|
// delete last waypoint
|
||||||
|
routing.on('waypoint:click', function (evt) {
|
||||||
|
var r = evt.marker._routing;
|
||||||
|
if (!r.prevMarker && !r.nextMarker) {
|
||||||
|
urlHash.updateHash();
|
||||||
|
}
|
||||||
|
}, urlHash);
|
||||||
|
|
||||||
$(window).resize(function () {
|
$(window).resize(function () {
|
||||||
elevation.addBelow(map);
|
elevation.addBelow(map);
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
this.onHashChange = L.Util.bind(this.onHashChange, this);
|
this.onHashChange = L.Util.bind(this.onHashChange, this);
|
||||||
this.additionalCb = additionalCb;
|
this.additionalCb = additionalCb;
|
||||||
this.onHashChangeCb = onHashChangeCb;
|
this.onHashChangeCb = onHashChangeCb;
|
||||||
|
this.layers = layers;
|
||||||
if (map) {
|
if (map) {
|
||||||
this.init(map, layers);
|
this.init(map, layers);
|
||||||
}
|
}
|
||||||
|
|
@ -18,13 +19,14 @@
|
||||||
if(hash.indexOf('#map=') === 0) {
|
if(hash.indexOf('#map=') === 0) {
|
||||||
hash = hash.substr(5);
|
hash = hash.substr(5);
|
||||||
}
|
}
|
||||||
var args = hash.split("/");
|
var args = hash.split("&");
|
||||||
if (args.length >= 4) {
|
var mapsArgs = args[0].split("/");
|
||||||
var zoom = parseInt(args[0], 10),
|
if (mapsArgs.length == 4) {
|
||||||
lat = parseFloat(args[1]),
|
var zoom = parseInt(mapsArgs[0], 10),
|
||||||
lon = parseFloat(args[2]),
|
lat = parseFloat(mapsArgs[1]),
|
||||||
layer = decodeURIComponent(args[3]);
|
lon = parseFloat(mapsArgs[2]),
|
||||||
additional = args[4];
|
layer = decodeURIComponent(mapsArgs[3]);
|
||||||
|
additional = args[1];
|
||||||
if (isNaN(zoom) || isNaN(lat) || isNaN(lon)) {
|
if (isNaN(zoom) || isNaN(lat) || isNaN(lon)) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -139,12 +141,16 @@
|
||||||
layer = parsed.layer in options ? parsed.layer : Object.keys(options)[0],
|
layer = parsed.layer in options ? parsed.layer : Object.keys(options)[0],
|
||||||
that = this;
|
that = this;
|
||||||
|
|
||||||
//FIXME: removing/readding layers breaks Routing plugin
|
|
||||||
//Add/remove layer
|
//Add/remove layer
|
||||||
// this.map.eachLayer(function(layer) {
|
this.map.eachLayer(function(layer) {
|
||||||
// that.map.removeLayer(layer);
|
for (alayer in that.layers) {
|
||||||
// });
|
if (that.layers[alayer] == layer) {
|
||||||
// that.map.addLayer(options[layer]);
|
that.map.removeLayer(layer);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
that.map.addLayer(options[layer]);
|
||||||
|
|
||||||
this.isUpdatingHash = false;
|
this.isUpdatingHash = false;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue