]> git.openstreetmap.org Git - rails.git/commitdiff
Move layer definitions to yml
authorAnton Khorev <tony29@yandex.ru>
Thu, 21 Nov 2024 22:18:55 +0000 (01:18 +0300)
committerAnton Khorev <tony29@yandex.ru>
Fri, 22 Nov 2024 00:16:20 +0000 (03:16 +0300)
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/osm.js.erb
config/layers.yml [new file with mode: 0644]

index d053a81ce4d873a44c0e9d7e8ce0834668193beb..78f43b73a0b7d180eb9288664828db223059ecf2 100644 (file)
@@ -15,109 +15,9 @@ L.OSM.Map = L.Map.extend({
   initialize: function (id, options) {
     L.Map.prototype.initialize.call(this, id, options);
 
-    const layerDefinitions = [
-      {
-        leafletOsmId: "Mapnik",
-        code: "M",
-        keyId: "mapnik",
-        nameId: "standard",
-        credit: {
-          id: "make_a_donation",
-          href: "https://supporting.openstreetmap.org",
-          donate: true
-        }
-      },
-      {
-        leafletOsmId: "CyclOSM",
-        code: "Y",
-        keyId: "cyclosm",
-        nameId: "cyclosm",
-        credit: {
-          id: "cyclosm_credit",
-          children: {
-            cyclosm_link: {
-              id: "cyclosm_name",
-              href: "https://www.cyclosm.org"
-            },
-            osm_france_link: {
-              id: "osm_france",
-              href: "https://openstreetmap.fr/"
-            }
-          }
-        }
-      },
-      {
-        leafletOsmId: "CycleMap",
-        code: "C",
-        keyId: "cyclemap",
-        nameId: "cycle_map",
-        apiKeyId: "THUNDERFOREST_KEY",
-        credit: {
-          id: "thunderforest_credit",
-          children: {
-            thunderforest_link: {
-              id: "andy_allan",
-              href: "https://www.thunderforest.com/"
-            }
-          }
-        }
-      },
-      {
-        leafletOsmId: "TransportMap",
-        code: "T",
-        keyId: "transportmap",
-        nameId: "transport_map",
-        apiKeyId: "THUNDERFOREST_KEY",
-        credit: {
-          id: "thunderforest_credit",
-          children: {
-            thunderforest_link: {
-              id: "andy_allan",
-              href: "https://www.thunderforest.com/"
-            }
-          }
-        }
-      },
-      {
-        leafletOsmId: "TracestrackTopo",
-        code: "P",
-        keyId: "tracestracktopo",
-        nameId: "tracestracktop_topo",
-        apiKeyId: "TRACESTRACK_KEY",
-        credit: {
-          id: "tracestrack_credit",
-          children: {
-            tracestrack_link: {
-              id: "tracestrack",
-              href: "https://www.tracestrack.com/"
-            }
-          }
-        }
-      },
-      {
-        leafletOsmId: "HOT",
-        code: "H",
-        keyId: "hot",
-        nameId: "hot",
-        credit: {
-          id: "hotosm_credit",
-          children: {
-            hotosm_link: {
-              id: "hotosm_name",
-              href: "https://www.hotosm.org/"
-            },
-            osm_france_link: {
-              id: "osm_france",
-              href: "https://openstreetmap.fr/"
-            }
-          }
-        }
-      }
-    ];
-
     this.baseLayers = [];
 
-    for (const layerDefinition of layerDefinitions) {
+    for (const layerDefinition of OSM.LAYER_DEFINITIONS) {
       if (layerDefinition.apiKeyId && !OSM[layerDefinition.apiKeyId]) continue;
 
       const layerOptions = {
index e08528f845da2b2cee72780d3197720fbc42ab02..e9c09c79f9ae995575030ad9231167c64983f974 100644 (file)
@@ -1,5 +1,6 @@
 //= depend_on settings.yml
 //= depend_on settings.local.yml
+//= depend_on layers.yml
 //= depend_on key.yml
 //= require qs/dist/qs
 
@@ -30,6 +31,7 @@ OSM = {
   TRACESTRACK_KEY:         <%= Settings.tracestrack_key.to_json %>,
 <% end %>
 
+  LAYER_DEFINITIONS:       <%= YAML.load_file(Rails.root.join("config/layers.yml")).to_json %>,
   LAYERS_WITH_MAP_KEY:     <%= YAML.load_file(Rails.root.join("config/key.yml")).keys.to_json %>,
 
   MARKER_GREEN:            <%= image_path("marker-green.png").to_json %>,
diff --git a/config/layers.yml b/config/layers.yml
new file mode 100644 (file)
index 0000000..3b5bc94
--- /dev/null
@@ -0,0 +1,72 @@
+- leafletOsmId: "Mapnik"
+  code: "M"
+  keyId: "mapnik"
+  nameId: "standard"
+  credit:
+    id: "make_a_donation"
+    href: "https://supporting.openstreetmap.org"
+    donate: true
+
+- leafletOsmId: "CyclOSM"
+  code: "Y"
+  keyId: "cyclosm"
+  nameId: "cyclosm"
+  credit:
+    id: "cyclosm_credit"
+    children:
+      cyclosm_link:
+        id: "cyclosm_name"
+        href: "https://www.cyclosm.org"
+      osm_france_link:
+        id: "osm_france"
+        href: "https://openstreetmap.fr/"
+
+- leafletOsmId: "CycleMap"
+  code: "C"
+  keyId: "cyclemap"
+  nameId: "cycle_map"
+  apiKeyId: "THUNDERFOREST_KEY"
+  credit:
+    id: "thunderforest_credit"
+    children:
+      thunderforest_link:
+        id: "andy_allan"
+        href: "https://www.thunderforest.com/"
+
+- leafletOsmId: "TransportMap"
+  code: "T"
+  keyId: "transportmap"
+  nameId: "transport_map"
+  apiKeyId: "THUNDERFOREST_KEY"
+  credit:
+    id: "thunderforest_credit"
+    children:
+      thunderforest_link:
+        id: "andy_allan"
+        href: "https://www.thunderforest.com/"
+
+- leafletOsmId: "TracestrackTopo"
+  code: "P"
+  keyId: "tracestracktopo"
+  nameId: "tracestracktop_topo"
+  apiKeyId: "TRACESTRACK_KEY"
+  credit:
+    id: "tracestrack_credit"
+    children:
+      tracestrack_link:
+        id: "tracestrack"
+        href: "https://www.tracestrack.com/"
+
+- leafletOsmId: "HOT"
+  code: "H"
+  keyId: "hot"
+  nameId: "hot"
+  credit:
+    id: "hotosm_credit"
+    children:
+      hotosm_link:
+        id: "hotosm_name"
+        href: "https://www.hotosm.org/"
+      osm_france_link:
+        id: "osm_france"
+        href: "https://openstreetmap.fr/"