]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api_controller.rb
Merge branch 'master' into openstreetbugs2
[rails.git] / app / controllers / api_controller.rb
index f84ae10764fa485fd4b05d004281ef9d5aa53a56..95cc88869c054e1b82d363961c109d1485f48347 100644 (file)
@@ -18,7 +18,7 @@ class ApiController < ApplicationController
         return
     end
 
-    offset = page * APP_CONFIG['tracepoints_per_page']
+    offset = page * TRACEPOINTS_PER_PAGE
 
     # Figure out the bbox
     bbox = params['bbox']
@@ -39,14 +39,14 @@ class ApiController < ApplicationController
     end
 
     # get all the points
-    points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => APP_CONFIG['tracepoints_per_page'], :order => "gpx_id DESC, trackid ASC, timestamp ASC" )
+    points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => TRACEPOINTS_PER_PAGE, :order => "gpx_id DESC, trackid ASC, timestamp ASC" )
 
     doc = XML::Document.new
     doc.encoding = XML::Encoding::UTF_8
     root = XML::Node.new 'gpx'
     root['version'] = '1.0'
     root['creator'] = 'OpenStreetMap.org'
-    root['xmlns'] = "http://www.topografix.com/GPX/1/0/"
+    root['xmlns'] = "http://www.topografix.com/GPX/1/0"
     
     doc.root = root
 
@@ -107,7 +107,7 @@ class ApiController < ApplicationController
       trkseg << point.to_xml_node(timestamps)
     end
 
-    response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\""
+    response.headers["Content-Disposition"] = "attachment; filename=\"tracks.gpx\""
 
     render :text => doc.to_s, :content_type => "text/xml"
   end
@@ -144,20 +144,15 @@ 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)
+    @nodes = Node.find_by_area(min_lat, min_lon, max_lat, max_lon, :conditions => {:visible => true}, :include => :node_tags, :limit => MAX_NUMBER_OF_NODES+1)
     # get all the nodes, by tag not yet working, waiting for change from NickB
     # need to be @nodes (instance var) so tests in /spec can be performed
     #@nodes = Node.search(bbox, params[:tag])
 
     node_ids = @nodes.collect(&:id)
-    if node_ids.length > APP_CONFIG['max_number_of_nodes']
-      report_error("You requested too many nodes (limit is #{APP_CONFIG['max_number_of_nodes']}). Either request a smaller area, or use planet.osm")
+    if node_ids.length > MAX_NUMBER_OF_NODES
+      report_error("You requested too many nodes (limit is #{MAX_NUMBER_OF_NODES}). Either request a smaller area, or use planet.osm")
       return
     end
     if node_ids.length == 0
@@ -175,14 +170,6 @@ 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
@@ -308,19 +295,19 @@ class ApiController < ApplicationController
     version['maximum'] = "#{API_VERSION}";
     api << version
     area = XML::Node.new 'area'
-    area['maximum'] = APP_CONFIG['max_request_area'].to_s;
+    area['maximum'] = MAX_REQUEST_AREA.to_s;
     api << area
     tracepoints = XML::Node.new 'tracepoints'
-    tracepoints['per_page'] = APP_CONFIG['tracepoints_per_page'].to_s
+    tracepoints['per_page'] = TRACEPOINTS_PER_PAGE.to_s
     api << tracepoints
     waynodes = XML::Node.new 'waynodes'
-    waynodes['maximum'] = APP_CONFIG['max_number_of_way_nodes'].to_s
+    waynodes['maximum'] = MAX_NUMBER_OF_WAY_NODES.to_s
     api << waynodes
     changesets = XML::Node.new 'changesets'
     changesets['maximum_elements'] = Changeset::MAX_ELEMENTS.to_s
     api << changesets
     timeout = XML::Node.new 'timeout'
-    timeout['seconds'] = APP_CONFIG['api_timeout'].to_s
+    timeout['seconds'] = API_TIMEOUT.to_s
     api << timeout
     
     doc.root << api