X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/fac305e87b9a2df59064ddad666304ceb3d7f7a7..f9baf5f392370318966c9392e3badbbd715592ad:/app/controllers/api_controller.rb?ds=sidebyside diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index d6b0b037a..bfe26f542 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -27,7 +27,7 @@ class ApiController < ApplicationController if node_ids.length > 0 node_ids_sql = "(#{node_ids.join(',')})" # get the referenced segments - segments = Segment.find_by_sql "select * from segments where node_a in #{node_ids_sql} or node_b in #{node_ids_sql}" + segments = Segment.find_by_sql "select * from current_segments where visible = 1 and (node_a in #{node_ids_sql} or node_b in #{node_ids_sql})" end # see if we have nay missing nodes segments_nodes = segments.collect {|segment| segment.node_a } @@ -40,17 +40,16 @@ class ApiController < ApplicationController # get missing nodes if there are any nodes += Node.find(missing_nodes) if missing_nodes.length > 0 - doc = get_xml_doc + doc = OSM::API.get_xml_doc # get ways # find which ways are needed segment_ids = segments.collect {|segment| segment.id } ways = Array.new if segment_ids.length > 0 - way_segments = WaySegment.find_by_segment_id(segment_ids) + way_segments = WaySegment.find_all_by_segment_id(segment_ids) way_ids = way_segments.collect {|way_segment| way_segment.id } - - ways = Way.find(segment_ids) + ways = Way.find(way_ids) # NB: doesn't pick up segments, tags from db until accessed via way.way_segments etc. end nodes.each do |node|