Introducing a new /browse/{node,way,relation,changeset}/{id}/map page

which is slippy map covering the screen showing the map data that is
in the small map at /browse/{node,way,relation,changeset}/{id}.

/browse/{node,way,relation,changeset}/{id} now contains a link to both
"View Larger Map" which has been changed to link to this new map
feature, and "View on main map" which as before links to the area
showing the feature on the main slippy map.

/browse/{node,way,relation,changeset}/{id}/map supports permalinks
using its own hacked version of updateLocation() (which doesn't set a
cookie), but shortlinks are not supported. The Edit/History/Export
links link back to the main map.
This commit is contained in:
Ævar Arnfjörð Bjarmason 2009-06-27 09:30:10 +00:00
parent 77f971b79c
commit 8bc8e537b2
10 changed files with 192 additions and 2 deletions

View file

@ -25,6 +25,13 @@ 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])
@ -45,6 +52,13 @@ 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 }] )
@ -60,6 +74,13 @@ 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])
@ -74,4 +95,11 @@ 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