Remove "/brouter?" from URL
This commit is contained in:
parent
9b52a938ab
commit
ac57250b7e
3 changed files with 52 additions and 44 deletions
|
|
@ -41,7 +41,7 @@ BR.Map = {
|
|||
attribution: '<a target="_blank" href="http://goto.arcgisonline.com/maps/World_Imagery">World Imagery</a> '
|
||||
+ '© <a target="_blank" href="http://www.esri.com/">Esri</a>, sources: '
|
||||
+ 'Esri, DigitalGlobe, Earthstar Geographics, CNES/Airbus DS, GeoEye, USDA FSA, USGS, Getmapping, Aerogrid, IGN, IGP, and the GIS User Community'
|
||||
});
|
||||
});
|
||||
|
||||
var cycling = L.tileLayer('http://tile.waymarkedtrails.org/cycling/{z}/{x}/{y}.png', {
|
||||
maxNativeZoom: 18,
|
||||
|
|
@ -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
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
58
js/index.js
58
js/index.js
|
|
@ -235,38 +235,21 @@
|
|||
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();
|
||||
var onHashChangeCb = function(url) {
|
||||
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);
|
||||
|
||||
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;
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue