]> git.openstreetmap.org Git - rails.git/blobdiff - public/export/embed.html
link goes into external frame, not in the iframe
[rails.git] / public / export / embed.html
index 76ad24a4e3dc8ee2b96319817a239cf6b7900534..8e4ea2651cc4b809aa76e6f5bc2ef57132a6963e 100644 (file)
                 lat = mapPosition.y;
             }
 
                 lat = mapPosition.y;
             }
 
-            if (this.map.marker) {
-                params.lat = Math.round(lat*100000)/100000;
-                params.lon = Math.round(lon*100000)/100000;
-            } else {
-                params.mlat = Math.round(lat*100000)/100000;
-                params.mlon = Math.round(lon*100000)/100000;
-            }
+            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('?') );
             }
 
             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;
         }
             href += '?' + OpenLayers.Util.getParameterString(params);
             this.element.href = href;
         }
@@ -58,7 +54,6 @@
             map = new OpenLayers.Map ("map", {
               controls: [
                   new OpenLayers.Control.Attribution(),
             map = new OpenLayers.Map ("map", {
               controls: [
                   new OpenLayers.Control.Attribution(),
-                  new OpenLayers.Control.ArgParser(),
                   new OpenLayers.Control.Navigation(),
                   new OpenLayers.Control.Permalink(null, "http://openstreetmap.org/", { updateLink: localUpdateLink })
               ],
                   new OpenLayers.Control.Navigation(),
                   new OpenLayers.Control.Permalink(null, "http://openstreetmap.org/", { updateLink: localUpdateLink })
               ],
               projection: new OpenLayers.Projection("EPSG:900913")
             });
 
               projection: new OpenLayers.Projection("EPSG:900913")
             });
 
-            var mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
-               displayOutsideMaxExtent: true,
-               wrapDateLine: true,
-               attribution: '<a target="_parent" href="http://www.openstreetmap.org">OpenStreetMap</a>'
-            });
-            map.addLayer(mapnik);
-
-            var osmarender = new OpenLayers.Layer.OSM.Osmarender("Osmarender", {
-               displayOutsideMaxExtent: true,
-               wrapDateLine: true,
-               attribution: '<a target="_parent" href="http://www.openstreetmap.org">OpenStreetMap</a>'
-            });
-            map.addLayer(osmarender);
-
+            var attribution = 'Data by <a target="_parent" href="http://www.openstreetmap.org">OpenStreetMap</a>';
             var args = OpenLayers.Util.getParameters();
             var args = OpenLayers.Util.getParameters();
-            if (args.marker && map.getCenter()) {
+            if (!args.layer || args.layer == "mapnik") {
+                var mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
+                   displayOutsideMaxExtent: true,
+                   wrapDateLine: true,
+                   attribution: attribution
+                });
+                map.addLayer(mapnik);
+            } else {
+                var osmarender = new OpenLayers.Layer.OSM.Osmarender("Osmarender", {
+                   displayOutsideMaxExtent: true,
+                   wrapDateLine: true,
+                   attribution: attribution
+                });
+                map.addLayer(osmarender);
+            }
+
+            if (args.marker) {
                 var markers = new OpenLayers.Layer.Markers();
                 map.addLayer(markers);
                 var markers = new OpenLayers.Layer.Markers();
                 map.addLayer(markers);
-                markers.addMarker( new OpenLayers.Marker(map.getCenter()));
+                markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(args.marker[1], args.marker[0]).transform(map.displayProjection, map.getProjectionObject())));
                 map.marker = true;
             }
 
                 map.marker = true;
             }
 
-            if (!map.getCenter()) { 
+            if (args.bbox) {
+                var bounds = OpenLayers.Bounds.fromArray(args.bbox).transform(map.displayProjection, map.getProjectionObject());
+                map.zoomToExtent(bounds)
+            } else {
                 map.zoomToMaxExtent();
             }
 
                 map.zoomToMaxExtent();
             }