X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/560146d88c0c8a49d723d63ce79a382b90431133..8f7f02b025f59db466fdb22ea3686cb6c5adc400:/app/controllers/api/maps_controller.rb diff --git a/app/controllers/api/maps_controller.rb b/app/controllers/api/maps_controller.rb index c37ba2a3e..439585462 100644 --- a/app/controllers/api/maps_controller.rb +++ b/app/controllers/api/maps_controller.rb @@ -46,10 +46,7 @@ module Api way_ids = way_nodes.collect { |way_node| way_node.id[0] } ways = Way.preload(:way_nodes, :way_tags).find(way_ids) - list_of_way_nodes = ways.collect do |way| - way.way_nodes.collect(&:node_id) - end - list_of_way_nodes.flatten! + list_of_way_nodes = ways.flat_map { |way| way.way_nodes.map(&:node_id) } end # - [0] in case some thing links to node 0 which doesn't exist. Shouldn't actually ever happen but it does. FIXME: file a ticket for this @@ -57,15 +54,9 @@ module Api nodes += Node.includes(:node_tags).find(nodes_to_fetch) unless nodes_to_fetch.empty? - @nodes = [] - nodes.each do |node| - @nodes << node if node.visible? - end + @nodes = nodes.filter(&:visible?) - @ways = [] - ways.each do |way| - @ways << way if way.visible? - end + @ways = ways.filter(&:visible?) @relations = Relation.nodes(@nodes).visible + Relation.ways(@ways).visible