X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/59cc0015f565e89327d83bbb3b0787e7c4270ed9..8de8ef4f6b0174f68efca340b2e71df34fe2ae63:/app/controllers/api_controller.rb diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 99afae672..9e3839697 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -1,7 +1,26 @@ class ApiController < ApplicationController def map + bbox = params['bbox'] + unless bbox and bbox.count(',') == 3 + render :nothing => true, :status => 400 + return + end + bbox = bbox.split(',') + + min_lat = bbox[0].to_f + min_lon = bbox[1].to_f + max_lat = bbox[2].to_f + max_lon = bbox[3].to_f + + nodes = Node.find(:all, :conditions => ['latitude > ? AND longitude > ? AND latitude < ? AND longitude < ? AND visible = 1', min_lat, min_lon, max_lat, max_lon]) + + node_ids = "(#{nodes.collect {|node| node.id }})" + + segments = Segment.find(:all, :condtions => ['node_a in ? or node_b in ?', node_ids, node_ids]) + render :text => node_ids.join(',') + return doc = XML::Document.new doc.encoding = 'UTF-8' @@ -22,6 +41,4 @@ class ApiController < ApplicationController #root << el1 end - - end