]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5586'
authorTom Hughes <tom@compton.nu>
Sun, 2 Feb 2025 10:30:04 +0000 (10:30 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 2 Feb 2025 10:30:04 +0000 (10:30 +0000)
1  2 
app/controllers/api/maps_controller.rb

index 9ba95c2551b650cfaccf0aa3c91f171a98e84238,afba6faa4bbe4e53c4f9c8a5083ee656325a6b2e..439585462eba7e1e7f760183789eec960feffd12
@@@ -46,10 -46,7 +46,7 @@@ module Ap
          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
  
        nodes += Node.includes(:node_tags).find(nodes_to_fetch) unless nodes_to_fetch.empty?
  
 -      visible_nodes = {}
 -      @nodes = []
 -      nodes.each do |node|
 -        if node.visible?
 -          visible_nodes[node.id] = node
 -          @nodes << node
 -        end
 -      end
 +      @nodes = nodes.filter(&:visible?)
  
 -      @ways = []
 -      way_ids = []
 -      ways.each do |way|
 -        if way.visible?
 -          way_ids << way.id
 -          @ways << way
 -        end
 -      end
 +      @ways = ways.filter(&:visible?)
  
 -      @relations = Relation.nodes(visible_nodes.keys).visible +
 -                   Relation.ways(way_ids).visible
 +      @relations = Relation.nodes(@nodes).visible +
 +                   Relation.ways(@ways).visible
  
        # we do not normally return the "other" partners referenced by an relation,
        # e.g. if we return a way A that is referenced by relation X, and there's