From: Steve Coast Date: Fri, 17 Nov 2006 20:56:01 +0000 (+0000) Subject: various bits X-Git-Tag: live~8611 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/8c9544e60a6b4699a475623aed179bfb6bc96337?hp=59cc0015f565e89327d83bbb3b0787e7c4270ed9 various bits --- 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 diff --git a/app/controllers/node_controller.rb b/app/controllers/node_controller.rb index c5b4f279b..416d1794f 100644 --- a/app/controllers/node_controller.rb +++ b/app/controllers/node_controller.rb @@ -15,6 +15,7 @@ class NodeController < ApplicationController if node node.user_id = @user.id + node.visible = 1 if node.save_with_history render :text => node.id else