From 34b147266c397bb1318bbfefb48df1c704855843 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Sat, 27 Jun 2009 15:34:26 +0000 Subject: [PATCH] Change the feature commited in [16174] to use the main map view instead of being located at /map. --- app/controllers/browse_controller.rb | 28 ------ app/views/browse/_big_map.html.erb | 119 ------------------------ app/views/browse/_map.html.erb | 25 +++-- app/views/browse/changeset_map.html.erb | 5 - app/views/browse/node_map.html.erb | 5 - app/views/browse/relation_map.html.erb | 5 - app/views/browse/way_map.html.erb | 5 - app/views/site/index.html.erb | 65 ++++++++++++- config/locales/en.yml | 11 +-- config/locales/is.yml | 5 - config/routes.rb | 4 - public/javascripts/site.js | 5 +- 12 files changed, 84 insertions(+), 198 deletions(-) delete mode 100644 app/views/browse/_big_map.html.erb delete mode 100644 app/views/browse/changeset_map.html.erb delete mode 100644 app/views/browse/node_map.html.erb delete mode 100644 app/views/browse/relation_map.html.erb delete mode 100644 app/views/browse/way_map.html.erb diff --git a/app/controllers/browse_controller.rb b/app/controllers/browse_controller.rb index 4de490b2c..8124d4a33 100644 --- a/app/controllers/browse_controller.rb +++ b/app/controllers/browse_controller.rb @@ -25,13 +25,6 @@ class BrowseController < ApplicationController @type = "relation" render :action => "not_found", :status => :not_found end - - def relation_map - @relation = Relation.find(params[:id]) - rescue ActiveRecord::RecordNotFound - @type = "relation" - render :action => "not_found", :status => :not_found - end def way @way = Way.find(params[:id], :include => [:way_tags, {:changeset => :user}, {:nodes => [:node_tags, {:ways => :way_tags}]}, :containing_relation_members]) @@ -52,13 +45,6 @@ class BrowseController < ApplicationController render :action => "not_found", :status => :not_found end - def way_map - @way = Way.find(params[:id]) - rescue ActiveRecord::RecordNotFound - @type = "way" - render :action => "not_found", :status => :not_found - end - def node @node = Node.find(params[:id]) @next = Node.find(:first, :order => "id ASC", :conditions => [ "visible = true AND id > :id", { :id => @node.id }] ) @@ -74,13 +60,6 @@ class BrowseController < ApplicationController @type = "way" render :action => "not_found", :status => :not_found end - - def node_map - @node = Node.find(params[:id]) - rescue ActiveRecord::RecordNotFound - @type = "node" - render :action => "not_found", :status => :not_found - end def changeset @changeset = Changeset.find(params[:id]) @@ -95,11 +74,4 @@ class BrowseController < ApplicationController @type = "changeset" render :action => "not_found", :status => :not_found end - - def changeset_map - @changeset = Changeset.find(params[:id]) - rescue ActiveRecord::RecordNotFound - @type = "changeset" - render :action => "not_found", :status => :not_found - end end diff --git a/app/views/browse/_big_map.html.erb b/app/views/browse/_big_map.html.erb deleted file mode 100644 index 329017026..000000000 --- a/app/views/browse/_big_map.html.erb +++ /dev/null @@ -1,119 +0,0 @@ -<% -# Decide on a lat lon to initialise the map with -if params['lon'] and params['lat'] - lon = h(params['lon']) - lat = h(params['lat']) - zoom = h(params['zoom'] || '5') - layers = h(params['layers']) -end -%> -<%= javascript_include_tag '/openlayers/OpenLayers.js' %> -<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %> -<%= javascript_include_tag 'map.js' %> - - <% if big_map.instance_of? Changeset or big_map.visible %> -
- -
- <% else %> - <%= t 'browse.map.deleted' %> - <% end %> - -<% if big_map.instance_of? Changeset or big_map.visible %> - -<% end %> diff --git a/app/views/browse/_map.html.erb b/app/views/browse/_map.html.erb index 9a150ae05..ac6f32fc6 100644 --- a/app/views/browse/_map.html.erb +++ b/app/views/browse/_map.html.erb @@ -6,9 +6,11 @@
<%= t 'browse.map.loading' %> - + + <% unless map.instance_of? Changeset %>
- + + <% end %> <% else %> <%= t 'browse.map.deleted' %> <% end %> @@ -34,11 +36,8 @@ $("loading").innerHTML = ""; - $("larger_map").href = '<%= url_for :controller => 'browse', :action => (map.class.to_s.downcase + '_map'), :id => map.id, :only_path => true %>'; - $("larger_map").innerHTML = "<%= t 'browse.map.view_larger_map' %>"; - - $("main_map").href = '/?minlon='+minlon+'&minlat='+minlat+'&maxlon='+maxlon+'&maxlat='+maxlat+'&box=yes'; - $("main_map").innerHTML = "<%= t 'browse.map.view_main_map' %>"; + $("area_larger_map").href = '/?minlon='+minlon+'&minlat='+minlat+'&maxlon='+maxlon+'&maxlat='+maxlat+'&box=yes'; + $("area_larger_map").innerHTML = "<%= t 'browse.map.larger.area' %>"; <% else %> var obj_type = "<%= map.class.name.downcase %>"; var obj_id = <%= map.id %>; @@ -70,12 +69,12 @@ } var center = getMapCenter(); - - $("larger_map").href = '<%= url_for :controller => 'browse', :action => (map.class.to_s.downcase + '_map'), :id => map.id, :only_path => true %>'; - $("larger_map").innerHTML = "<%= t 'browse.map.view_larger_map' %>"; - - $("main_map").href = '/?lat='+center.lat+'&lon='+center.lon+'&zoom='+this.map.getZoom(); - $("main_map").innerHTML = "<%= t 'browse.map.view_main_map' %>"; + $("area_larger_map").href = '/?lat='+center.lat+'&lon='+center.lon+'&zoom='+this.map.getZoom(); + $("area_larger_map").innerHTML = "<%= t 'browse.map.larger.area' %>"; + <% unless map.instance_of? Changeset %> + $("object_larger_map").href = '/?<%= map.class.to_s.downcase %>=<%= map.id %>'; + $("object_larger_map").innerHTML = "<%= t('browse.map.larger.' + map.class.to_s.downcase) %>"; + <% end %> } else { $("small_map").style.display = "none"; } diff --git a/app/views/browse/changeset_map.html.erb b/app/views/browse/changeset_map.html.erb deleted file mode 100644 index 8c3bdbe6c..000000000 --- a/app/views/browse/changeset_map.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -<% -@name = printable_name @changeset -@title = t('browse.changeset.map_title', :name => @name) -%> -<%= render :partial => "big_map", :object => @changeset %> diff --git a/app/views/browse/node_map.html.erb b/app/views/browse/node_map.html.erb deleted file mode 100644 index 4404e0c2b..000000000 --- a/app/views/browse/node_map.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -<% -@name = printable_name @node -@title = t('browse.node.map_title', :name => @name) -%> -<%= render :partial => "big_map", :object => @node %> diff --git a/app/views/browse/relation_map.html.erb b/app/views/browse/relation_map.html.erb deleted file mode 100644 index 15f001303..000000000 --- a/app/views/browse/relation_map.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -<% -@name = printable_name @relation -@title = t('browse.relation.map_title', :name => @name) -%> -<%= render :partial => "big_map", :object => @relation %> diff --git a/app/views/browse/way_map.html.erb b/app/views/browse/way_map.html.erb deleted file mode 100644 index 2b4d8b2e4..000000000 --- a/app/views/browse/way_map.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -<% -@name = printable_name @way -@title = t('browse.way.map_title', :name => @name) -%> -<%= render :partial => "big_map", :object => @way %> diff --git a/app/views/site/index.html.erb b/app/views/site/index.html.erb index d93b80b8a..a1ce52267 100644 --- a/app/views/site/index.html.erb +++ b/app/views/site/index.html.erb @@ -55,8 +55,26 @@ if params['minlon'] and params['minlat'] and params['maxlon'] and params['maxlat box = true if params['box']=="yes" end +if params['node'] or params['way'] or params['relation'] + object = true + if params['node'] + object_type = 'node' + object_id = h(params['node']) + elsif params['way'] + object_type = 'way' + object_id = h(params['way']) + elsif params['relation'] + object_type = 'relation' + object_id = h(params['relation']) + end +end + # Decide on a lat lon to initialise the map with. Various ways of doing this -if params['lon'] and params['lat'] +if params['lon'] and params['lat'] + # We only want to override the default 'object = true' zoom above + # if we get actual GET params, as opposed to say a cookie + lat_lon_zoom_via_params = true + lon = h(params['lon']) lat = h(params['lat']) zoom = h(params['zoom'] || '5') @@ -103,6 +121,8 @@ end var brokenContentSize = $("content").offsetWidth == 0; var marker; var map; + var obj_type = false; + var obj_id = false; OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>"); @@ -123,6 +143,47 @@ end // IE requires Vector layers be initialised on page load, and not under deferred script conditions Event.observe(window, 'load', function() {addBoxToMap(bbox)}); <% end %> + <% elsif object %> + // Display node/way/relation on the map + obj_type = "<%= object_type %>"; + obj_id = <%= object_id %>; + var url = "/api/<%= "#{API_VERSION}" %>/<%= object_type %>/<%= object_id %>"; + + if (obj_type != "node") { + url += "/full"; + } + + var osm_layer = new OpenLayers.Layer.GML("OSM", url, { + format: OpenLayers.Format.OSM, + projection: new OpenLayers.Projection("EPSG:4326") + }); + + osm_layer.events.register("loadend", osm_layer, function() { + if (this.features.length) { + var extent = this.features[0].geometry.getBounds(); + for (var i = 1; i < this.features.length; i++) { + extent.extend(this.features[i].geometry.getBounds()); + } + + <% unless lat_lon_zoom_via_params %> + if (extent) { + this.map.zoomToExtent(extent); + } else { + this.map.zoomToMaxExtent(); + } + <% else %> + var center = new OpenLayers.LonLat(<%= lon %>, <%= lat %>); + var zoom = <%= zoom %>; + <% end %> + + var center = getMapCenter(); + } + }); + + map.addLayer(osm_layer); + osm_layer.loadGML(); + osm_layer.loaded = true; + <% else %> var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>); var zoom = <%= zoom %>; @@ -179,7 +240,7 @@ end var extents = getMapExtent(); var expiry = new Date(); - updatelinks(lonlat.lon, lonlat.lat, zoom, layers, extents.left, extents.bottom, extents.right, extents.top); + updatelinks(lonlat.lon, lonlat.lat, zoom, layers, extents.left, extents.bottom, extents.right, extents.top, obj_type, obj_id); expiry.setYear(expiry.getFullYear() + 10); document.cookie = "_osm_location=" + lonlat.lon + "|" + lonlat.lat + "|" + zoom + "|" + layers + "; expires=" + expiry.toGMTString(); diff --git a/config/locales/en.yml b/config/locales/en.yml index b475335d5..cc87f8c94 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -79,7 +79,6 @@ en: browse: changeset: title: "Changeset" - map_title: "Changeset | {{name}}" changeset: "Changeset:" download: "Download {{changeset_xml_link}} or {{osmchange_xml_link}}" changesetxml: "Changeset XML" @@ -106,8 +105,11 @@ en: map: loading: "Loading..." deleted: "Deleted" - view_larger_map: "View Larger Map" - view_main_map: "View on main map" + larger: + area: "View area on larger map" + node: "View node on larger map" + way: "View way on larger map" + relation: "View relation on larger map" node_details: coordinates: "Coordinates: " part_of: "Part of:" @@ -119,7 +121,6 @@ en: view_details: "view details" node: node: "Node" - map_title: "Node | {{name}}" node_title: "Node: {{node_name}}" download: "{{download_xml_link}}, {{view_history_link}} or {{edit_link}}" download_xml: "Download XML" @@ -144,7 +145,6 @@ en: as: "as" relation: relation: "Relation" - map_title: "Relation | {{name}}" relation_title: "Relation: {{relation_name}}" download: "{{download_xml_link}} or {{view_history_link}}" download_xml: "Download XML" @@ -203,7 +203,6 @@ en: view_details: "view details" way: way: "Way" - map_title: "Way | {{name}}" way_title: "Way: {{way_name}}" download: "{{download_xml_link}}, {{view_history_link}} or {{edit_link}}" download_xml: "Download XML" diff --git a/config/locales/is.yml b/config/locales/is.yml index 88412a6e9..883621ff1 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -79,7 +79,6 @@ is: browse: changeset: title: "Breytingarsett" - map_title: "Breytingarsett | {{name}}" changeset: "Breytingarsett:" download: "Niðurhala breytingunni á {{changeset_xml_link}} eða á {{osmchange_xml_link}}" changesetxml: "Breytingarsetts XML sniði" @@ -111,7 +110,6 @@ is: loading: "Hleð..." deleted: "Eytt" view_larger_map: "Skoða á stærra korti" - view_main_map: "Skoða á aðalkorti" node_details: coordinates: "Hnit: " part_of: "Hluti af:" @@ -123,7 +121,6 @@ is: view_details: "sýna breytingarsögu" node: node: "Hnútur" - map_title: "Hnútur | {{name}}" node_title: "Hnútur: {{node_name}}" download: "{{download_xml_link}} eða {{view_history_link}} eða {{edit_link}}" download_xml: "Hala niður á XML sniði" @@ -148,7 +145,6 @@ is: as: "sem" relation: relation: "Vensl" - map_title: "Vensl | {{name}}" relation_title: "Vensl: {{relation_name}}" download: "{{download_xml_link}} eða {{view_history_link}}" download_xml: "Hala niður á XML sniði" @@ -206,7 +202,6 @@ is: view_details: "sýna breytingarsögu" way: way: "Vegur" - map_title: "Vegur | {{name}}" way_title: "Vegur: {{way_name}}" download: "{{download_xml_link}} eða {{view_history_link}} eða {{edit_link}}" download_xml: "Hala niður á XML sniði" diff --git a/config/routes.rb b/config/routes.rb index 8ca792a61..6dd3860dc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -76,16 +76,12 @@ ActionController::Routing::Routes.draw do |map| map.connect '/browse', :controller => 'changeset', :action => 'list' map.connect '/browse/start', :controller => 'browse', :action => 'start' map.connect '/browse/way/:id', :controller => 'browse', :action => 'way', :id => /\d+/ - map.connect '/browse/way/:id/map', :controller => 'browse', :action => 'way_map', :id => /\d+/ map.connect '/browse/way/:id/history', :controller => 'browse', :action => 'way_history', :id => /\d+/ map.connect '/browse/node/:id', :controller => 'browse', :action => 'node', :id => /\d+/ - map.connect '/browse/node/:id/map', :controller => 'browse', :action => 'node_map', :id => /\d+/ map.connect '/browse/node/:id/history', :controller => 'browse', :action => 'node_history', :id => /\d+/ map.connect '/browse/relation/:id', :controller => 'browse', :action => 'relation', :id => /\d+/ - map.connect '/browse/relation/:id/map', :controller => 'browse', :action => 'relation_map', :id => /\d+/ map.connect '/browse/relation/:id/history', :controller => 'browse', :action => 'relation_history', :id => /\d+/ map.connect '/browse/changeset/:id', :controller => 'browse', :action => 'changeset', :id => /\d+/ - map.connect '/browse/changeset/:id/map', :controller => 'browse', :action => 'changeset_map', :id => /\d+/ map.connect '/browse/changesets', :controller => 'changeset', :action => 'list' # web site diff --git a/public/javascripts/site.js b/public/javascripts/site.js index aefd9c8b6..5340ea99e 100644 --- a/public/javascripts/site.js +++ b/public/javascripts/site.js @@ -2,7 +2,7 @@ * Called as the user scrolls/zooms around to aniplate hrefs of the * view tab and various other links */ -function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat) { +function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat, obj_type, obj_id) { var decimals = Math.pow(10, Math.floor(zoom/3)); var node; @@ -18,6 +18,9 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat) { if (layers) { args["layers"] = layers; } + if (obj_type && obj_id) { + args[obj_type] = obj_id; + } node.href = setArgs(node.href, args); } -- 2.43.2