X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/db30a423a8f923bbcae709e1c8f6e337f637bc9a..488efc3df8f18cd867d3eb9c5b595d7bd8e1d362:/app/views/browse/_map.rhtml diff --git a/app/views/browse/_map.rhtml b/app/views/browse/_map.rhtml index 3128108d9..a0fcc06aa 100644 --- a/app/views/browse/_map.rhtml +++ b/app/views/browse/_map.rhtml @@ -9,17 +9,29 @@ var obj_type = '<%= type %>'; var obj_id = <%= id %>; var url = "/api/<%= "#{API_VERSION}" %>/<%= type %>/<%= id %>"; - if (obj_type == "way") { + if (obj_type != "node") { url += "/full"; } var map = createMap('small_map', {controls: [new OpenLayers.Control.Navigation()]}); var osm_layer = new OpenLayers.Layer.GML("OSM", url, {format: OpenLayers.Format.OSM, projection: new OpenLayers.Projection("EPSG:4326")}); osm_layer.events.register("loadend", osm_layer, function() { - $("loading").innerHTML = ""; - this.map.zoomToExtent( this.features[0].geometry.getBounds()); - var center = map.getCenter().clone().transform(this.map.getProjectionObject(), new OpenLayers.Projection("EPSG:4326")); - $("larger_map").href = '/?lat='+center.lat+'&lon='+center.lon+'&zoom='+this.map.getZoom(); - $("larger_map").innerHTML = "View Larger Map"; + $("loading").innerHTML = ""; + if (this.features.length) { + var extent = this.features[0].geometry.getBounds(); + for (var i = 1; i < this.features.length; i++) { + extent.extend(this.features[i].geometry.getBounds()); + } + if (extent) { + this.map.zoomToExtent(extent); + } else { + this.map.zoomToMaxExtent(); + } + var center = getMapCenter(); + $("larger_map").href = '/?lat='+center.lat+'&lon='+center.lon+'&zoom='+this.map.getZoom(); + $("larger_map").innerHTML = "View Larger Map"; + } else { + $("small_map").style.display = "none"; + } }) map.addLayer(osm_layer); osm_layer.loadGML();