improvements to embed.html, now uses bbox instead of lon/lat/zoom, and has more human...
authorChristopher Schmidt <crschmidt@crschmidt.net>
Wed, 30 Apr 2008 01:00:40 +0000 (01:00 +0000)
committerChristopher Schmidt <crschmidt@crschmidt.net>
Wed, 30 Apr 2008 01:00:40 +0000 (01:00 +0000)
public/export/embed.html

index f3dab11bffed639eb1b7b66f1d58f4f2e0be07ed..58bfdec21487a4b9b6f7005f8d09cf1ff3b0965a 100644 (file)
                 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) {
@@ -58,7 +53,6 @@
             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 })
               ],
               projection: new OpenLayers.Projection("EPSG:900913")
             });
 
-            var mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
-               displayOutsideMaxExtent: true,
-               wrapDateLine: true,
-               attribution: 'Data by <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: 'Data by <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();
-            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);
-                markers.addMarker( new OpenLayers.Marker(map.getCenter()));
+                var center = args.marker.split(","); 
+                markers.addMarker( new OpenLayers.Marker(new OpenLayers.LonLat(center[1], center[0]).transform(map.displayProjection, map.getProjectionObject())));
                 map.marker = true;
+            }    
+            if (args.bbox) {  
+                var bounds = OpenLayers.Bounds.fromString(args.bbox).transform(map.displayProjection, map.getProjectionObject());
+                var center = bounds.getCenterLonLat();
+                map.setCenter(center, map.getZoomForExtent(bounds, true);
+            } else {
+                map.zoomToMaxExtent(); 
             }
-
-            if (!map.getCenter()) { 
-                map.zoomToMaxExtent();
-            }
-
             var size = map.getSize();
             if (size.h > 320) {
                 map.addControl(new OpenLayers.Control.PanZoomBar());