"New permalink code maintains existing parameters ... including the
lat/lon/zoom/layers." Reported by bobkare (thx, bobkare!) with a patch by same, rewritten by Schuyler, reviewed by me -- and I'm committing because Schuyler's whitespace was bad. (RC1, here we come!) git-svn-id: http://svn.openlayers.org/trunk/openlayers@4345 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -109,37 +109,30 @@ OpenLayers.Control.Permalink = OpenLayers.Class(OpenLayers.Control, {
|
||||
if (!center) {
|
||||
return;
|
||||
}
|
||||
|
||||
var zoom = "zoom=" + this.map.getZoom();
|
||||
var lat = "lat=" + Math.round(center.lat*100000)/100000;
|
||||
var lon = "lon=" + Math.round(center.lon*100000)/100000;
|
||||
|
||||
var layers = "layers=";
|
||||
var params = OpenLayers.Util.getParameters(this.base);
|
||||
|
||||
params.zoom = this.map.getZoom();
|
||||
params.lat = Math.round(center.lat*100000)/100000;
|
||||
params.lon = Math.round(center.lon*100000)/100000;
|
||||
|
||||
params.layers = '';
|
||||
for(var i=0; i< this.map.layers.length; i++) {
|
||||
var layer = this.map.layers[i];
|
||||
|
||||
if (layer.isBaseLayer) {
|
||||
layers += (layer == this.map.baseLayer) ? "B" : "0";
|
||||
params.layers += (layer == this.map.baseLayer) ? "B" : "0";
|
||||
} else {
|
||||
layers += (layer.getVisibility()) ? "T" : "F";
|
||||
params.layers += (layer.getVisibility()) ? "T" : "F";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var href = this.base;
|
||||
var paramsString = lat + "&" + lon + "&" + zoom + "&" + layers;
|
||||
|
||||
var lastServerChar = href.charAt(href.length - 1);
|
||||
if ((lastServerChar == "&") || (lastServerChar == "?")) {
|
||||
href += paramsString;
|
||||
} else {
|
||||
if (href.indexOf('?') == -1) {
|
||||
//serverPath has no ? -- add one
|
||||
href += '?' + paramsString;
|
||||
} else {
|
||||
//serverPath contains ?, so must already have paramsString at the end
|
||||
href += '&' + paramsString;
|
||||
}
|
||||
if( href.indexOf('?') != -1 ){
|
||||
href = href.substring( 0, href.indexOf('?') );
|
||||
}
|
||||
|
||||
href += '?' + OpenLayers.Util.getParameterString(params);
|
||||
this.element.href = href;
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user