]> git.openstreetmap.org Git - rails.git/commitdiff
larger map link is now raw html for better google-linking capability, rather
authorChristopher Schmidt <crschmidt@crschmidt.net>
Thu, 1 May 2008 00:00:20 +0000 (00:00 +0000)
committerChristopher Schmidt <crschmidt@crschmidt.net>
Thu, 1 May 2008 00:00:20 +0000 (00:00 +0000)
than generated by javascript

app/views/export/start.rjs
public/export/embed.html

index 2a7985037d27d1349d438423ba939ff6e808f057..daa56a676d0f139afea081c951653e143f215956 100644 (file)
@@ -229,12 +229,23 @@ page << <<EOJ
     var bounds = new OpenLayers.Bounds($("minlon").value, $("minlat").value, $("maxlon").value, $("maxlat").value);
     var layerName = map.baseLayer.name.toLowerCase();
     var url = "http://#{SERVER_URL}/export/embed.html?bbox=" + bounds.toBBOX() + "&layer=" + layerName;
-
+    
     if ($("marker_lat").value && $("marker_lon").value) {
       url += "&marker=" + $("marker_lat").value + "," + $("marker_lon").value;
     } 
-
+    
     var html = '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="'+url+'" style="border: 1px solid black"></iframe>';
+   
+    // Create "larger map" link
+    var center = bounds.getCenterLonLat();
+    var epsg4326 = new OpenLayers.Projection("EPSG:4326");
+    var epsg900913 = new OpenLayers.Projection("EPSG:900913");
+
+    bounds.transform(epsg4326, epsg900913);
+    var zoom = map.getZoomForExtent(bounds);
+    
+    html += '<br /><small><a href="http://#{SERVER_URL}/?lat='+center.lat+'&lon='+center.lon+'&zoom='+zoom+'">View Larger Map</a></small>';
+
     $("export_html_text").value = html;
 
     if ($("format_html").checked) {
index 8e4ea2651cc4b809aa76e6f5bc2ef57132a6963e..ae82eb54a9361af21ce84fb484d43aeb875c237a 100644 (file)
     <script src="http://openstreetmap.org/openlayers/OpenStreetMap.js"></script>
     <script type="text/javascript">
         var map, layer;
-        function localUpdateLink() {
-            var center = this.map.getCenter();
-
-            // Map not initialized yet. Break out of this function.
-            if (!center) {
-                return;
-            }
-
-            var params = OpenLayers.Util.getParameters(this.base);
-
-            params.zoom = this.map.getZoom();
-            var lat = center.lat;
-            var lon = center.lon;
-
-            if (this.displayProjection) {
-                var mapPosition = OpenLayers.Projection.transform(
-                  { x: lon, y: lat },
-                  this.map.getProjectionObject(),
-                  this.displayProjection );
-                lon = mapPosition.x;
-                lat = mapPosition.y;
-            }
-
-            params.lat = Math.round(lat*100000)/100000;
-            params.lon = Math.round(lon*100000)/100000;
-
-            var href = this.base;
-            if(href.indexOf('?') != -1) {
-                href = href.substring( 0, href.indexOf('?') );
-            }
-            
-           this.element.target="_blank";
-            href += '?' + OpenLayers.Util.getParameterString(params);
-            this.element.href = href;
-        }
-
         function init(){
-            OpenLayers.Lang.en.permalink = "Larger Map";
             map = new OpenLayers.Map ("map", {
               controls: [
                   new OpenLayers.Control.Attribution(),
-                  new OpenLayers.Control.Navigation(),
-                  new OpenLayers.Control.Permalink(null, "http://openstreetmap.org/", { updateLink: localUpdateLink })
+                  new OpenLayers.Control.Navigation()
               ],
               maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,
                                                20037508.34,20037508.34),