Add support for displaying a map covering a specified bounding box.

This commit is contained in:
Tom Hughes 2007-07-29 14:26:42 +00:00
parent 9634ab8fc1
commit cbb7d97405
3 changed files with 24 additions and 6 deletions

View file

@ -6,6 +6,14 @@
<% mlat = params['mlat'] %>
<% end %>
<% if params['minlon'] and params['minlat'] and params['maxlon'] and params['maxlat'] %>
<% bbox = true %>
<% minlon = params['minlon'] %>
<% minlat = params['minlat'] %>
<% maxlon = params['maxlon'] %>
<% maxlat = params['maxlat'] %>
<% end %>
<% if params['lon'] and params['lat'] %>
<% lon = params['lon'] %>
<% lat = params['lat'] %>
@ -43,22 +51,31 @@
var map;
function init(){
var map = createMap("map");
<% if bbox %>
var min = lonLatToMercator(new OpenLayers.LonLat(<%= minlon %>, <%= minlat %>));
var max = lonLatToMercator(new OpenLayers.LonLat(<%= maxlon %>, <%= maxlat %>));
var bbox = new OpenLayers.Bounds(min.lon, min.lat, max.lon, max.lat);
map.zoomToExtent(bbox);
<% else %>
var centre = lonLatToMercator(new OpenLayers.LonLat(<%= lon %>, <%= lat %>));
var zoom = <%= zoom %>;
var layers = "<%= layers %>";
<% if params['scale'] and params['scale'].length > 0 then %>
zoom = scaleToZoom(<%= params['scale'].to_f() %>);
<% end %>
var map = createMap("map", centre, zoom);
map.setCentre(center, zoom);
<% end %>
<% if marker %>
addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)));
<% end %>
<% if layers %>
setMapLayers(layers);
setMapLayers("<%= layers %>");
<% end %>
map.events.register("moveend", map, updateLocation);

View file

@ -64,7 +64,9 @@
zoom = scaleToZoom(<%= params['scale'].to_f() %>);
<% end %>
var map = createMap("map", centre, zoom);
var map = createMap("map");
map.setCentre(centre, zoom);
<% if marker %>
marker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)), null, "Your location");

View file

@ -2,7 +2,7 @@ var map;
var markers;
var popup;
function createMap(divName, centre, zoom) {
function createMap(divName) {
OpenLayers.Util.onImageLoadError = function() {
this.src = OpenLayers.Util.getImagesLocation() + "404.png";
}
@ -28,7 +28,6 @@ function createMap(divName, centre, zoom) {
map.addLayer(markers);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.setCenter(centre, zoom);
return map;
}