61 lines
1.2 KiB
JavaScript
61 lines
1.2 KiB
JavaScript
/* exported Hashroute */
|
|
|
|
var Hashroute = {
|
|
|
|
setup: function(map, layerMgr){
|
|
function updateHash(){
|
|
var center = map.getCenter();
|
|
window.location.hash =
|
|
layerMgr.getCurrentLayer().id + "/" +
|
|
center.lng + "/" + center.lat + "/" + map.getZoom();
|
|
}
|
|
|
|
map.on('zoomend', updateHash);
|
|
map.on('moveend', updateHash);
|
|
map.on('baselayerchange', updateHash);
|
|
updateHash();
|
|
},
|
|
|
|
getLayerId: function(){
|
|
var hashParts = window.location.hash.substring(1).split("/");
|
|
if (hashParts.length == 4){
|
|
//new format
|
|
return +hashParts[0];
|
|
|
|
}
|
|
|
|
return 0;
|
|
},
|
|
|
|
getZoom: function(){
|
|
var hashParts = window.location.hash.substring(1).split("/");
|
|
if (hashParts.length == 3){
|
|
//old format
|
|
return +hashParts[2];
|
|
|
|
} else if (hashParts.length == 4){
|
|
//new format
|
|
return +hashParts[3];
|
|
|
|
}
|
|
|
|
return 11;
|
|
},
|
|
|
|
getCenter: function(){
|
|
var hashParts = window.location.hash.substring(1).split("/");
|
|
if (hashParts.length == 3){
|
|
//old format
|
|
return [+hashParts[1], +hashParts[0]];
|
|
|
|
} else if (hashParts.length == 4){
|
|
//new format
|
|
return [+hashParts[2], +hashParts[1]];
|
|
|
|
}
|
|
|
|
return [0, 0];
|
|
}
|
|
|
|
};
|