X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/2408dd333f43c98c23c5539e90b327055a06659a..c1299fbb35d99287e25d7c7573bb467fc6b9ac5f:/app/views/site/index.rhtml diff --git a/app/views/site/index.rhtml b/app/views/site/index.rhtml index dc488089d..e88643588 100644 --- a/app/views/site/index.rhtml +++ b/app/views/site/index.rhtml @@ -1,31 +1,55 @@ -<%= render :partial => 'search', :locals => { :onopen => "resizeMap();", :onclose => "resizeMap();" } %> +<% content_for :greeting do %> +<% if @user and !@user.home_lon.nil? and !@user.home_lat.nil? %> +<%= link_to_function 'home', "setPosition(#{@user.home_lat}, #{@user.home_lon}, 10)" %> | +<% end %> +<% end %> -
+<%= render :partial => 'sidebar', :locals => { :onopen => "resizeMap();", :onclose => "resizeMap();" } %> +<%= render :partial => 'key' %> +<%= render :partial => 'search' %> + +
+ +
+ +
+ + + + + + + +
http://creativecommons.org/licenses/by-sa/2.0/http://openstreetmap.org/
+Licensed under the Creative Commons Attribution-Share Alike 2.0 license +by the OpenStreetMap project and it's contributors. +
+
<% if params['mlon'] and params['mlat'] %> <% marker = true %> -<% mlon = params['mlon'] %> -<% mlat = params['mlat'] %> +<% mlon = h(params['mlon']) %> +<% mlat = h(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'] %> +<% minlon = h(params['minlon']) %> +<% minlat = h(params['minlat']) %> +<% maxlon = h(params['maxlon']) %> +<% maxlat = h(params['maxlat']) %> <% end %> <% if params['lon'] and params['lat'] %> -<% lon = params['lon'] %> -<% lat = params['lat'] %> -<% zoom = params['zoom'] || '5' %> -<% layers = params['layers'] %> +<% lon = h(params['lon']) %> +<% lat = h(params['lat']) %> +<% zoom = h(params['zoom'] || '5') %> +<% layers = h(params['layers']) %> <% elsif params['mlon'] and params['mlat'] %> -<% lon = params['mlon'] %> -<% lat = params['mlat'] %> -<% zoom = params['zoom'] || '12' %> -<% layers = params['layers'] %> +<% lon = h(params['mlon']) %> +<% lat = h(params['mlat']) %> +<% zoom = h(params['zoom'] || '12') %> +<% layers = h(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? %> @@ -33,13 +57,23 @@ <% lat = @user.home_lat %> <% zoom = '10' %> <% else %> +<% session[:location] = OSM::IPLocation(request.env['REMOTE_ADDR']) unless session[:location] %> +<% if session[:location] %> +<% bbox = true %> +<% minlon = session[:location][:minlon] %> +<% minlat = session[:location][:minlat] %> +<% maxlon = session[:location][:maxlon] %> +<% maxlat = session[:location][:maxlat] %> +<% else %> <% lon = '-0.1' %> <% lat = '51.5' %> -<% zoom = params['zoom'] || '5' %> -<% layers = params['layers'] %> +<% zoom = h(params['zoom'] || '5') %> +<% layers = h(params['layers']) %> +<% end %> <% end %> + <%= javascript_include_tag 'map.js' %> @@ -69,13 +103,15 @@ map.setCenter(centre, zoom); <% end %> + <% if layers %> + setMapLayers("<%= layers %>"); + <% end %> + <% if marker %> marker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>))); <% end %> - <% if layers %> - setMapLayers("<%= layers %>"); - <% end %> + map.events.register("zoomend", map, updateKey); map.events.register("moveend", map, updateLocation); updateLocation(); @@ -83,6 +119,10 @@ handleResize(); } + function getPosition() { + return mercatorToLonLat(map.getCenter()); + } + function setPosition(lat, lon, zoom) { var centre = lonLatToMercator(new OpenLayers.LonLat(lon, lat)); @@ -91,7 +131,7 @@ if (marker) removeMarkerFromMap(marker); - marker = addMarkerToMap(centre); + marker = addMarkerToMap(centre, getArrowIcon()); } function updateLocation() { @@ -116,14 +156,14 @@ function resizeMap() { var centre = map.getCenter(); var zoom = map.getZoom(); - var search_results_width = $("search_results").offsetWidth; + var sidebar_width = $("sidebar").offsetWidth; - if (search_results_width > 0) { - search_results_width = search_results_width + 5 + if (sidebar_width > 0) { + sidebar_width = sidebar_width + 5 } - $("map").style.left = (search_results_width) + "px"; - $("map").style.width = ($("content").offsetWidth - search_results_width) + "px"; + $("map").style.left = (sidebar_width) + "px"; + $("map").style.width = ($("content").offsetWidth - sidebar_width) + "px"; $("map").style.height = ($("content").offsetHeight - 2) + "px"; map.setCenter(centre, zoom);