X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/985047f18db933ecbbe8f6d9b10fbfdcac287b57..1ff72de3183c3aaceac3262cf60943092fa49b1d:/app/views/site/index.rhtml diff --git a/app/views/site/index.rhtml b/app/views/site/index.rhtml index 5b9fd84f6..febb1fdb9 100644 --- a/app/views/site/index.rhtml +++ b/app/views/site/index.rhtml @@ -6,14 +6,26 @@ <% 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'] %> <% zoom = params['zoom'] || '5' %> +<% layers = params['layers'] %> <% elsif params['mlon'] and params['mlat'] %> <% lon = params['mlon'] %> <% lat = params['mlat'] %> <% zoom = params['zoom'] || '12' %> +<% layers = params['layers'] %> +<% elsif cookies.key?("location") %> +<% lon,lat,zoom,layers = cookies["location"].value.first.split(",") %> <% elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil? %> <% lon = @user.home_lon %> <% lat = @user.home_lat %> @@ -22,6 +34,7 @@ <% lon = '-0.1' %> <% lat = '51.5' %> <% zoom = params['zoom'] || '5' %> +<% layers = params['layers'] %> <% end %> @@ -38,6 +51,15 @@ 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 %>; @@ -45,12 +67,17 @@ zoom = scaleToZoom(<%= params['scale'].to_f() %>); <% end %> - var map = createMap("map", centre, zoom); + map.setCenter(centre, zoom); + <% end %> <% if marker %> addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>))); <% end %> + <% if layers %> + setMapLayers("<%= layers %>"); + <% end %> + map.events.register("moveend", map, updateLocation); updateLocation(); @@ -71,8 +98,11 @@ function updateLocation() { var lonlat = mercatorToLonLat(map.getCenter()); var zoom = map.getZoom(); + var layers = getMapLayers(); + + updatelinks(lonlat.lon, lonlat.lat, zoom, layers); - updatelinks(lonlat.lon, lonlat.lat, zoom); + document.cookie = "location=" + lonlat.lon + "," + lonlat.lat + "," + zoom + "," + layers; } function getStyle( el, property ) {