|
1 | 1 | 'use strict';
|
2 | 2 |
|
3 | 3 | var L = require('leaflet');
|
| 4 | +const config = require('../config/config.json'); |
4 | 5 |
|
5 |
| -var mapboxTileURL = 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', |
6 |
| - mapboxAttribution = '© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a></strong>', |
7 |
| - mapboxToken = 'pk.eyJ1IjoibXNsZWUiLCJhIjoiclpiTWV5SSJ9.P_h8r37vD8jpIH1A6i1VRg', |
8 |
| - osmAttribution = '© <a href="https://www.openstreetmap.org/copyright/en">OpenStreetMap</a> contributors', |
9 |
| - waymarkedtrailsAttribution = '© <a href="http://waymarkedtrails.org">Sarah Hoffmann</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)'; |
| 6 | +var layers = {}; |
| 7 | +var overlays = {}; |
10 | 8 |
|
11 |
| -var streets = L.tileLayer(mapboxTileURL, { |
12 |
| - attribution: mapboxAttribution, |
13 |
| - tileSize: 512, |
14 |
| - zoomOffset: -1, |
15 |
| - id: 'mapbox/streets-v11', |
16 |
| - accessToken: mapboxToken |
17 |
| - }), |
18 |
| - outdoors = L.tileLayer(mapboxTileURL, { |
19 |
| - attribution: mapboxAttribution, |
20 |
| - tileSize: 512, |
21 |
| - zoomOffset: -1, |
22 |
| - id: 'mapbox/outdoors-v11', |
23 |
| - accessToken: mapboxToken |
24 |
| - }), |
25 |
| - satellite = L.tileLayer(mapboxTileURL, { |
26 |
| - attribution: mapboxAttribution, |
27 |
| - tileSize: 512, |
28 |
| - zoomOffset: -1, |
29 |
| - id: 'mapbox/satellite-streets-v11', |
30 |
| - accessToken: mapboxToken |
31 |
| - }), |
32 |
| - osm = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { |
33 |
| - attribution: osmAttribution, |
34 |
| - }), |
35 |
| - osm_de = L.tileLayer('https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', { |
36 |
| - attribution: osmAttribution, |
37 |
| - }), |
38 |
| - hiking = L.tileLayer('https://tile.waymarkedtrails.org/hiking/{z}/{x}/{y}.png', { |
39 |
| - attribution: waymarkedtrailsAttribution, |
40 |
| - }), |
41 |
| - bike = L.tileLayer('https://tile.waymarkedtrails.org/cycling/{z}/{x}/{y}.png', { |
42 |
| - attribution: waymarkedtrailsAttribution, |
43 |
| - }), |
44 |
| - small_components = L.tileLayer('https://tools.geofabrik.de/osmi/tiles/routing/{z}/{x}/{y}.png', {}); |
| 9 | +// Load layers from config |
| 10 | +for (let layer of config.layers) { |
| 11 | + layers[layer.name] = L.tileLayer(layer.url, { |
| 12 | + attribution: layer.attribution |
| 13 | + }); |
| 14 | +} |
| 15 | + |
| 16 | +// Load overlays from config |
| 17 | +for (let overlay of config.overlays) { |
| 18 | + overlays[overlay.name] = L.tileLayer(overlay.url, { |
| 19 | + attribution: overlay.attribution |
| 20 | + }); |
| 21 | +} |
45 | 22 |
|
46 | 23 | module.exports = {
|
47 | 24 | defaultState: {
|
48 |
| - center: L.latLng(38.8995,-77.0269), |
49 |
| - zoom: 13, |
| 25 | + center: L.latLng(config.center[0], config.center[1]), |
| 26 | + zoom: config.zoom, |
50 | 27 | waypoints: [],
|
51 |
| - language: 'en', |
| 28 | + language: config.language, |
52 | 29 | alternative: 0,
|
53 |
| - layer: streets |
54 |
| - }, |
55 |
| - services: [{ |
56 |
| - label: 'Car (fastest)', |
57 |
| - path: 'https://router.project-osrm.org/route/v1' |
58 |
| - }], |
59 |
| - layer: [{ |
60 |
| - 'Mapbox Streets': streets, |
61 |
| - 'Mapbox Outdoors': outdoors, |
62 |
| - 'Mapbox Streets Satellite': satellite, |
63 |
| - 'openstreetmap.org': osm, |
64 |
| - 'openstreetmap.de.org': osm_de |
65 |
| - }], |
66 |
| - overlay: { |
67 |
| - 'Hiking': hiking, |
68 |
| - 'Bike': bike, |
69 |
| - 'Small Components': small_components |
| 30 | + layer: layers[config.layers[0].name], // Set the base layer to the first layer in the list |
| 31 | + service: 0 |
70 | 32 | },
|
| 33 | + services: config.services, |
| 34 | + layer: [layers], |
| 35 | + overlay: overlays, |
71 | 36 | baselayer: {
|
72 |
| - one: streets, |
73 |
| - two: outdoors, |
74 |
| - three: satellite, |
75 |
| - four: osm, |
76 |
| - five: osm_de |
| 37 | + one: layers[config.layers[0].name], // Set the base layer to the first layer in the list |
77 | 38 | }
|
78 | 39 | };
|
0 commit comments