]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api_controller.rb
this is kind of a "suggested change" for the API controller to
[rails.git] / app / controllers / api_controller.rb
index 3e9e627db7fe02c2b7f5777f32f1429b13e9ed1d..f84ae10764fa485fd4b05d004281ef9d5aa53a56 100644 (file)
@@ -144,6 +144,11 @@ class ApiController < ApplicationController
       return
     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???
     @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
@@ -170,6 +175,14 @@ class ApiController < ApplicationController
     bounds['maxlon'] = max_lon.to_s
     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
     # find which ways are needed
     ways = Array.new