X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/a473b4ebd93f5d79481e7c494fa98b69decb38f7..97aefa23d0606edaee71d04cf6c1a2006689b1fa:/app/views/site/index.rhtml diff --git a/app/views/site/index.rhtml b/app/views/site/index.rhtml index 97eeda5a8..2cca4d529 100644 --- a/app/views/site/index.rhtml +++ b/app/views/site/index.rhtml @@ -8,6 +8,14 @@ <%= render :partial => 'key' %> <%= render :partial => 'search' %> + +
@@ -21,7 +29,7 @@ Licensed under the Creative Commons Attribution-Share Alike 2.0 license -by the OpenStreetMap project and it's contributors. +by the OpenStreetMap project and its contributors. @@ -50,8 +58,8 @@ by the OpenStreetMap project and it's contributors. <% lat = h(params['mlat']) %> <% zoom = h(params['zoom'] || '12') %> <% layers = h(params['layers']) %> -<% elsif cookies.key?("location") %> -<% lon,lat,zoom,layers = cookies["location"].split(",") %> +<% elsif cookies.key?("_osm_location") %> +<% lon,lat,zoom,layers = cookies["_osm_location"].split("|") %> <% elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil? %> <% lon = @user.home_lon %> <% lat = @user.home_lat %> @@ -68,8 +76,8 @@ by the OpenStreetMap project and it's contributors. <% lon = '-0.1' %> <% lat = '51.5' %> <% zoom = h(params['zoom'] || '5') %> -<% layers = h(params['layers']) %> <% end %> +<% layers = h(params['layers']) %> <% end %> <%= javascript_include_tag '/openlayers/OpenLayers.js' %> @@ -86,29 +94,33 @@ by the OpenStreetMap project and it's contributors. function mapInit(){ map = createMap("map"); + <% unless OSM_STATUS == :api_offline or OSM_STATUS == :database_offline %> + map.dataLayer = new OpenLayers.Layer("Data", { "visibility": false }); + map.dataLayer.events.register("visibilitychanged", map.dataLayer, toggleData); + map.addLayer(map.dataLayer); + <% end %> + <% 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); + var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>); - map.zoomToExtent(bbox); + setMapExtent(bbox); <% else %> - var centre = lonLatToMercator(new OpenLayers.LonLat(<%= lon %>, <%= lat %>)); + var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>); var zoom = <%= zoom %>; <% if params['scale'] and params['scale'].length > 0 then %> zoom = scaleToZoom(<%= params['scale'].to_f() %>); <% end %> - map.setCenter(centre, zoom); + setMapCenter(centre, zoom); <% end %> - <% if layers %> + <% if !layers.nil? and !layers.empty? %> setMapLayers("<%= layers %>"); <% end %> <% if marker %> - marker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>))); + marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)); <% end %> map.events.register("zoomend", map, updateKey); @@ -120,14 +132,22 @@ by the OpenStreetMap project and it's contributors. handleResize(); } + function toggleData() { + if (map.dataLayer.visibility) { + <%= remote_function :url => { :controller => 'browse', :action => 'start' } %> + } else { + closeSidebar(); + } + } + function getPosition() { - return mercatorToLonLat(map.getCenter()); + return getMapCenter(); } function setPosition(lat, lon, zoom) { - var centre = lonLatToMercator(new OpenLayers.LonLat(lon, lat)); + var centre = new OpenLayers.LonLat(lon, lat); - map.setCenter(centre, zoom); + setMapCenter(centre, zoom); if (marker) removeMarkerFromMap(marker); @@ -136,13 +156,13 @@ by the OpenStreetMap project and it's contributors. } function updateLocation() { - var lonlat = mercatorToLonLat(map.getCenter()); + var lonlat = getMapCenter(); var zoom = map.getZoom(); var layers = getMapLayers(); updatelinks(lonlat.lon, lonlat.lat, zoom, layers); - document.cookie = "location=" + lonlat.lon + "," + lonlat.lat + "," + zoom + "," + layers; + document.cookie = "_osm_location=" + lonlat.lon + "|" + lonlat.lat + "|" + zoom + "|" + layers; } function resizeContent() { @@ -177,9 +197,14 @@ by the OpenStreetMap project and it's contributors. resizeMap(); } - - window.onresize = handleResize; mapInit(); + + window.onload = handleResize; + window.onresize = handleResize; + + <% if params['action'] == 'export' %> + <%= remote_function :url => { :controller => 'export', :action => 'start' } %> + <% end %> // -->