X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/96eea9da7fa46ec22a85ab722c88be9e834be9e4..2e03861300bca1a44d50a9e9c684ffc0e2d6ad65:/app/views/site/index.rhtml diff --git a/app/views/site/index.rhtml b/app/views/site/index.rhtml index 08cbfaeda..878720efc 100644 --- a/app/views/site/index.rhtml +++ b/app/views/site/index.rhtml @@ -1,37 +1,57 @@ -<% content_for :left_menu do %> -<%= link_to "Map key", "http://wiki.openstreetmap.org/index.php/Map_Key" %> +<% 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 => 'search', :locals => { :onopen => "resizeMap();", :onclose => "resizeMap();" } %> - -
+<%= 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(",") %> +<% lon,lat,zoom,layers = cookies["location"].split(",") %> <% elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil? %> <% lon = @user.home_lon %> <% lat = @user.home_lat %> @@ -47,12 +67,13 @@ <% 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 '/openlayers/OpenLayers.js' %> +<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %> <%= javascript_include_tag 'map.js' %> @@ -82,20 +103,36 @@ 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); + map.events.register("changelayer", map, updateLocation); + map.events.register("click", map, mapClick); updateLocation(); handleResize(); } + // Map click results in feature lookup + function mapClick(e) { + var pos = lonLatToNonSphericalMercator + (mercatorToLonLat + (map.getLonLatFromViewPortPx + ( map.events.getMousePosition(e)))); + } + + function getPosition() { + return mercatorToLonLat(map.getCenter()); + } + function setPosition(lat, lon, zoom) { var centre = lonLatToMercator(new OpenLayers.LonLat(lon, lat)); @@ -129,14 +166,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);