+ end
+
+ # External apps that use the api are able to query the api to find out some
+ # parameters of the API. It currently returns:
+ # * minimum and maximum API versions that can be used.
+ # * maximum area that can be requested in a bbox request in square degrees
+ # * number of tracepoints that are returned in each tracepoints page
+ def capabilities
+ doc = OSM::API.new.get_xml_doc
+
+ api = XML::Node.new 'api'
+ version = XML::Node.new 'version'
+ version['minimum'] = "#{API_VERSION}";
+ version['maximum'] = "#{API_VERSION}";
+ api << version
+ area = XML::Node.new 'area'
+ area['maximum'] = APP_CONFIG['max_request_area'].to_s;
+ api << area
+ tracepoints = XML::Node.new 'tracepoints'
+ tracepoints['per_page'] = APP_CONFIG['tracepoints_per_page'].to_s
+ api << tracepoints
+ waynodes = XML::Node.new 'waynodes'
+ waynodes['maximum'] = APP_CONFIG['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
+ api << timeout
+
+ doc.root << api