]> git.openstreetmap.org Git - rails.git/blob - lib/map_layers.rb
Merge remote-tracking branch 'upstream/pull/5924'
[rails.git] / lib / map_layers.rb
1 module MapLayers
2   def self.full_definitions(layers_filename, legends: nil)
3     legended_layers = YAML.load_file(Rails.root.join(legends)).keys if legends
4     YAML.load_file(Rails.root.join(layers_filename))
5         .reject { |layer| layer["apiKeyId"] && !Settings[layer["apiKeyId"]] }
6         .map do |layer|
7           if layer["apiKeyId"]
8             layer["apikey"] = Settings[layer["apiKeyId"]]
9             layer.delete "apiKeyId"
10           end
11           layer["hasLegend"] = true if legended_layers&.include?(layer["layerId"])
12           layer
13         end
14   end
15
16   def self.embed_definitions(layers_filename)
17     full_definitions(layers_filename)
18       .select { |entry| entry["canEmbed"] }
19       .to_h { |entry| [entry["layerId"], entry.slice("leafletOsmId", "leafletOsmDarkId", "apikey").compact] }
20   end
21 end