]> git.openstreetmap.org Git - rails.git/blobdiff - public/export/embed.html
Pass zoom to map.setCenter as an integer (Closes #1547)
[rails.git] / public / export / embed.html
index 58bfdec21487a4b9b6f7005f8d09cf1ff3b0965a..af45a6b1f99cea1eb631c0e19a6863d76763a128 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('?') );
-            }
-
-            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),
                 var mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
                    displayOutsideMaxExtent: true,
                    wrapDateLine: true,
-                   attribution: attribution 
+                   attribution: attribution
                 });
                 map.addLayer(mapnik);
-            } else {        
+            } else if (args.layer == "osmarender") {
                 var osmarender = new OpenLayers.Layer.OSM.Osmarender("Osmarender", {
                    displayOutsideMaxExtent: true,
                    wrapDateLine: true,
-                   attribution: attribution 
+                   attribution: attribution
+                });
+                map.addLayer(osmarender);
+            } else if (args.layer == "cycle map") {
+                var cyclemap = new OpenLayers.Layer.OSM.CycleMap("Cycle Map", {
+                   displayOutsideMaxExtent: true,
+                   wrapDateLine: true,
+                   attribution: attribution
                 });
-                map.addLayer(osmarender); 
-            } 
+                map.addLayer(cyclemap);
+            }
+
             if (args.marker) {
                 var markers = new OpenLayers.Layer.Markers();
                 map.addLayer(markers);
-                var center = args.marker.split(","); 
-                markers.addMarker( new OpenLayers.Marker(new OpenLayers.LonLat(center[1], center[0]).transform(map.displayProjection, map.getProjectionObject())));
+                markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(args.marker[1], args.marker[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);
+            }
+
+            if (args.bbox) {
+                var bounds = OpenLayers.Bounds.fromArray(args.bbox).transform(map.displayProjection, map.getProjectionObject());
+                map.zoomToExtent(bounds)
             } else {
-                map.zoomToMaxExtent(); 
+                map.zoomToMaxExtent();
             }
+
             var size = map.getSize();
             if (size.h > 320) {
                 map.addControl(new OpenLayers.Control.PanZoomBar());