X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/0c480e05f0f11c881c5c0f2d47cc5c3328a4a3a4..8a9261ea0749ce9bf714073542a017133de01378:/app/views/browse/_map.rhtml diff --git a/app/views/browse/_map.rhtml b/app/views/browse/_map.rhtml index a90a3fffd..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 = getMapCenter(); - $("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();