this is kind of a "suggested change" for the API controller to

support an additional "restriction" parameter for the "map" 
call (only value currently supported: nodes_only to return only
nodes). i would have liked to implement "tagged_nodes_only" as
well but was unsure how to do that best. feel free to make up 
some other way instead to improve node access for POI editors,
or drop this altogether if you have some other grand plan.
This commit is contained in:
Frederik Ramm 2009-12-14 21:29:00 +00:00
parent d963aa30b7
commit fb912fba71

View file

@ -144,6 +144,11 @@ class ApiController < ApplicationController
return return
end end
if param[:restriction] and param[:restriction] != "nodes_only"
report_error("The parameter restriction may only take one of the following values: nodes_only")
return
end
# FIXME um why is this area using a different order for the lat/lon from above??? # FIXME um why is this area using a different order for the lat/lon from above???
@nodes = Node.find_by_area(min_lat, min_lon, max_lat, max_lon, :conditions => {:visible => true}, :include => :node_tags, :limit => APP_CONFIG['max_number_of_nodes']+1) @nodes = Node.find_by_area(min_lat, min_lon, max_lat, max_lon, :conditions => {:visible => true}, :include => :node_tags, :limit => APP_CONFIG['max_number_of_nodes']+1)
# get all the nodes, by tag not yet working, waiting for change from NickB # get all the nodes, by tag not yet working, waiting for change from NickB
@ -170,6 +175,14 @@ class ApiController < ApplicationController
bounds['maxlon'] = max_lon.to_s bounds['maxlon'] = max_lon.to_s
doc.root << bounds doc.root << bounds
# bail out at this stage if user has indicated that he is
# not interested in ways or relations.
if params[:restriction] == "nodes_only"
response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\""
render :text => doc.to_s, :content_type => "text/xml"
return
end
# get ways # get ways
# find which ways are needed # find which ways are needed
ways = Array.new ways = Array.new