Remove "/brouter?" from URL

This commit is contained in:
Gautier Pelloux-Prayer 2017-04-24 12:01:10 +02:00
parent 9b52a938ab
commit ac57250b7e
3 changed files with 52 additions and 44 deletions

View file

@ -124,10 +124,14 @@ BR.Map = {
BR.debug = BR.debug || {};
BR.debug.map = map;
var layersAndOverlays = baseLayers;
for (var o in overlays) {
layersAndOverlays[o] = overlays[o];
}
return {
map: map,
layersControl: layersControl,
layers: baseLayers
layers: layersAndOverlays
};
}

View file

@ -235,21 +235,7 @@
router.setOptions(routingOptions.getOptions());
profile.update(routingOptions.getOptions());
urlHash = new L.Hash(map, mapLayers, function() {
return router.getUrl(routing.getWaypoints(), null);
});
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);
var onHashChangeCb = function(url) {
var url2params = function (s) {
var p = {};
var sep = '&';
@ -263,10 +249,7 @@
}
return p;
}
urlHash.onHashChangeCb = function(url) {
if (url == null) return;
url = url.substr('brouter?'.length);
var opts = router.parseUrlParams(url2params(url));
router.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 () {
elevation.addBelow(map);

View file

@ -9,6 +9,7 @@
this.onHashChange = L.Util.bind(this.onHashChange, this);
this.additionalCb = additionalCb;
this.onHashChangeCb = onHashChangeCb;
this.layers = layers;
if (map) {
this.init(map, layers);
}
@ -18,13 +19,14 @@
if(hash.indexOf('#map=') === 0) {
hash = hash.substr(5);
}
var args = hash.split("/");
if (args.length >= 4) {
var zoom = parseInt(args[0], 10),
lat = parseFloat(args[1]),
lon = parseFloat(args[2]),
layer = decodeURIComponent(args[3]);
additional = args[4];
var args = hash.split("&");
var mapsArgs = args[0].split("/");
if (mapsArgs.length == 4) {
var zoom = parseInt(mapsArgs[0], 10),
lat = parseFloat(mapsArgs[1]),
lon = parseFloat(mapsArgs[2]),
layer = decodeURIComponent(mapsArgs[3]);
additional = args[1];
if (isNaN(zoom) || isNaN(lat) || isNaN(lon)) {
return false;
} else {
@ -139,12 +141,16 @@
layer = parsed.layer in options ? parsed.layer : Object.keys(options)[0],
that = this;
//FIXME: removing/readding layers breaks Routing plugin
//Add/remove layer
// this.map.eachLayer(function(layer) {
// that.map.removeLayer(layer);
// });
// that.map.addLayer(options[layer]);
this.map.eachLayer(function(layer) {
for (alayer in that.layers) {
if (that.layers[alayer] == layer) {
that.map.removeLayer(layer);
break;
}
}
});
that.map.addLayer(options[layer]);
this.isUpdatingHash = false;
} else {