X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/50c754061c00a47ea0990c014bb7faf8f83fe79a..209dece7d3b3b4161ede2f84784ab0cd63ed2166:/public/export/embed.html diff --git a/public/export/embed.html b/public/export/embed.html index 11c0a02ee..41cd75f43 100644 --- a/public/export/embed.html +++ b/public/export/embed.html @@ -6,8 +6,8 @@ height: 100%; } .olControlAttribution { - bottom: 3px!important; - } + bottom: 3px!important; + } @@ -15,37 +15,32 @@ var map, layer; function localUpdateLink() { var center = this.map.getCenter(); - + // Map not initialized yet. Break out of this function. - if (!center) { - return; + if (!center) { + return; } var params = OpenLayers.Util.getParameters(this.base); - - params.zoom = this.map.getZoom(); + + 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(), + { x: lon, y: lat }, + this.map.getProjectionObject(), this.displayProjection ); - lon = mapPosition.x; - 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; + 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 ){ + if(href.indexOf('?') != -1) { href = href.substring( 0, href.indexOf('?') ); } @@ -56,46 +51,58 @@ function init(){ OpenLayers.Lang.en.permalink = "Larger Map"; map = new OpenLayers.Map ("map", { - controls:[ + 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 }) + ], maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34, 20037508.34,20037508.34), - numZoomLevels:20, - maxResolution:156543.0339, + numZoomLevels: 20, + maxResolution: 156543.0339, displayProjection: new OpenLayers.Projection("EPSG:4326"), - units:'m', + units: 'm', projection: new OpenLayers.Projection("EPSG:900913") - } ); - var mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", { - displayOutsideMaxExtent: true, - wrapDateLine: true, - attribution: 'OpenStreetMap' }); - map.addLayer(mapnik); - var osmarender = new OpenLayers.Layer.OSM.Osmarender("Osmarender", { - displayOutsideMaxExtent: true, - wrapDateLine: true, - attribution: 'OpenStreetMap' - }); - map.addLayer(osmarender); + var attribution = 'Data by OpenStreetMap'; 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())); + markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(args.marker[1], args.marker[0]).transform(map.displayProjection, map.getProjectionObject()))); map.marker = true; - } - if (!map.getCenter()) { map.zoomToMaxExtent(); } + } + + if (args.bbox) { + var bounds = OpenLayers.Bounds.fromArray(args.bbox).transform(map.displayProjection, map.getProjectionObject()); + map.zoomToExtent(bounds) + } else { + map.zoomToMaxExtent(); + } + var size = map.getSize(); - if (size.h > 320) { + if (size.h > 320) { map.addControl(new OpenLayers.Control.PanZoomBar()); } else { map.addControl(new OpenLayers.Control.PanZoom()); - } + } }