Changeset 4345
- Timestamp:
- 09/16/07 23:47:57 (1 year ago)
- Files:
-
- trunk/openlayers/lib/OpenLayers/Control/Permalink.js (modified) (1 diff)
- trunk/openlayers/tests/Control/test_Permalink.html (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openlayers/lib/OpenLayers/Control/Permalink.js
r4333 r4345 110 110 return; 111 111 } 112 113 var params = OpenLayers.Util.getParameters(this.base); 112 114 113 var zoom = "zoom=" +this.map.getZoom();114 var lat = "lat=" +Math.round(center.lat*100000)/100000;115 var lon = "lon=" +Math.round(center.lon*100000)/100000;115 params.zoom = this.map.getZoom(); 116 params.lat = Math.round(center.lat*100000)/100000; 117 params.lon = Math.round(center.lon*100000)/100000; 116 118 117 var layers = "layers=";119 params.layers = ''; 118 120 for(var i=0; i< this.map.layers.length; i++) { 119 121 var layer = this.map.layers[i]; 120 122 121 123 if (layer.isBaseLayer) { 122 layers += (layer == this.map.baseLayer) ? "B" : "0";124 params.layers += (layer == this.map.baseLayer) ? "B" : "0"; 123 125 } else { 124 layers += (layer.getVisibility()) ? "T" : "F";126 params.layers += (layer.getVisibility()) ? "T" : "F"; 125 127 } 126 128 } 127 129 128 130 var href = this.base; 129 var paramsString = lat + "&" + lon + "&" + zoom + "&" + layers; 130 131 var lastServerChar = href.charAt(href.length - 1); 132 if ((lastServerChar == "&") || (lastServerChar == "?")) { 133 href += paramsString; 134 } else { 135 if (href.indexOf('?') == -1) { 136 //serverPath has no ? -- add one 137 href += '?' + paramsString; 138 } else { 139 //serverPath contains ?, so must already have paramsString at the end 140 href += '&' + paramsString; 141 } 131 if( href.indexOf('?') != -1 ){ 132 href = href.substring( 0, href.indexOf('?') ); 142 133 } 134 135 href += '?' + OpenLayers.Util.getParameterString(params); 143 136 this.element.href = href; 144 137 }, trunk/openlayers/tests/Control/test_Permalink.html
r4337 r4345 40 40 map.addControl(control); 41 41 map.pan(5, 0); 42 t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getElement('permalink').href, location+"? lat=0&lon=1.75781&zoom=2&layers=BT"), 'pan sets permalink');42 t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getElement('permalink').href, location+"?zoom=2&lat=0&lon=1.75781&layers=BT"), 'pan sets permalink'); 43 43 44 44 map.layers[1].setVisibility(false); 45 45 46 t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getElement('permalink').href, location+"? lat=0&lon=1.75781&zoom=2&layers=BF"), 'setVisibility sets permalink');46 t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getElement('permalink').href, location+"?zoom=2&lat=0&lon=1.75781&layers=BF"), 'setVisibility sets permalink'); 47 47 } 48 48 function test_03_Control_Permalink_updateLinksBase (t) { … … 57 57 map.addControl(control); 58 58 map.pan(5, 0); 59 OpenLayers.Util.getElement('edit_permalink').href = './edit.html? lat=0&lon=1.75781&zoom=2&layers=B';59 OpenLayers.Util.getElement('edit_permalink').href = './edit.html?zoom=2&lat=0&lon=1.75781&layers=B'; 60 60 t.eq(OpenLayers.Util.getElement('permalink').href, OpenLayers.Util.getElement('edit_permalink').href, "Panning sets permalink with base"); 61 61 } … … 78 78 map.addControl(control); 79 79 map.pan(5, 0); 80 OpenLayers.Util.getElement('edit_permalink').href = './edit.html?foo=bar& lat=0&lon=1.75781&zoom=2&layers=B';80 OpenLayers.Util.getElement('edit_permalink').href = './edit.html?foo=bar&zoom=2&lat=0&lon=1.75781&layers=B'; 81 81 t.eq(OpenLayers.Util.getElement('permalink').href, OpenLayers.Util.getElement('edit_permalink').href, "Panning sets permalink with base and querystring"); 82 82 … … 87 87 88 88 control = new OpenLayers.Control.Permalink('permalink', "./edit.html?" ); 89 OpenLayers.Util.getElement('edit_permalink').href = './edit.html? lat=0&lon=1.75781&zoom=2&layers=B';89 OpenLayers.Util.getElement('edit_permalink').href = './edit.html?zoom=2&lat=0&lon=1.75781&layers=B'; 90 90 map.addControl(control); 91 91 map.pan(5, 0); … … 95 95 } 96 96 97 function test_06_Control_Permalink_nonRepeating (t) { 98 t.plan( 2 ); 99 100 control = new OpenLayers.Control.Permalink('permalink', "./edit.html?zoom=3" ); 101 t.ok( control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object" ); 102 map = new OpenLayers.Map('map'); 103 layer = new OpenLayers.Layer.WMS('Test Layer', "http://octo.metacarta.com/cgi-bin/mapserv", {map: '/mapdata/vmap_wms.map', layers: 'basic', format: 'image/jpeg'}); 104 map.addLayer(layer); 105 if (!map.getCenter()) map.zoomToMaxExtent(); 106 map.addControl(control); 107 map.pan(5, 0); 108 OpenLayers.Util.getElement('edit_permalink').href = './edit.html?zoom=2&lat=0&lon=1.75781&layers=B'; 109 t.eq(OpenLayers.Util.getElement('permalink').href, OpenLayers.Util.getElement('edit_permalink').href, "Panning sets permalink with existing zoom in base"); 110 } 97 111 </script> 98 112 </head>
