From ad68d0023bd7a32ee9e98b33a4d9df3189c4c15e Mon Sep 17 00:00:00 2001 From: Norbert Renner Date: Wed, 15 Jun 2022 14:21:31 +0200 Subject: [PATCH] Configure hillshading layer - full attribution - i18n key - paint property defaults as template --- js/LayersConfig.js | 6 ++---- js/util/MaplibreGlLazyLoader.js | 4 ++++ layers/config/overrides.js | 3 +++ layers/mvt/terrarium-hillshading-style.json | 8 +++++++- layers/mvt/terrarium-hillshading.geojson | 9 +++------ locales/en.json | 1 + 6 files changed, 20 insertions(+), 11 deletions(-) diff --git a/js/LayersConfig.js b/js/LayersConfig.js index 4c51bf4..35d4b1b 100644 --- a/js/LayersConfig.js +++ b/js/LayersConfig.js @@ -244,9 +244,7 @@ BR.LayersConfig = L.Class.extend({ return new leafletOsmNotes(); }, - createMvtLayer: function (props) { - const options = {}; - + createMvtLayer: function (props, options) { if (props.url in BR.layerIndex) { // url is key to style in local layers bundle (file name without '.json'), // suggested file naming convention: `-style.json` @@ -346,7 +344,7 @@ BR.LayersConfig = L.Class.extend({ } else if (props.dataSource === 'OpenStreetMapNotesAPI') { layer = this.createOpenStreetMapNotesLayer(); } else if (props.type === 'mvt') { - layer = this.createMvtLayer(props); + layer = this.createMvtLayer(props, options); } else { // JOSM var josmUrl = url; diff --git a/js/util/MaplibreGlLazyLoader.js b/js/util/MaplibreGlLazyLoader.js index 1a96871..05a1969 100644 --- a/js/util/MaplibreGlLazyLoader.js +++ b/js/util/MaplibreGlLazyLoader.js @@ -47,6 +47,10 @@ BR.MaplibreGlLazyLoader = L.Layer.extend({ _addGlLayer: function () { this.glLayer = L.maplibreGL(this.options); + // see LayersConfig.createLayer + this.glLayer.getAttribution = function () { + return this.options.mapLink; + }; this._map.addLayer(this.glLayer); this._updateZIndex(); diff --git a/layers/config/overrides.js b/layers/config/overrides.js index 3dcd768..a85d2de 100644 --- a/layers/config/overrides.js +++ b/layers/config/overrides.js @@ -248,5 +248,8 @@ BR.confLayers.getPropertyOverrides = function() { 'nameShort': 'CyclOSM', 'mapUrl': 'https://www.cyclosm.org/#map={zoom}/{lat}/{lon}/cyclosm' }, + 'terrarium-hillshading': { + 'name': i18next.t('map.layer.hillshading') + } }; }; diff --git a/layers/mvt/terrarium-hillshading-style.json b/layers/mvt/terrarium-hillshading-style.json index 10a9779..b1a58bb 100644 --- a/layers/mvt/terrarium-hillshading-style.json +++ b/layers/mvt/terrarium-hillshading-style.json @@ -15,7 +15,13 @@ { "id": "hillshading", "source": "dem", - "type": "hillshade" + "type": "hillshade", + "paint": { + "hillshade-exaggeration": 0.5, + "hillshade-shadow-color": "#000000", + "hillshade-highlight-color": "#FFFFFF", + "hillshade-accent-color": "rgba(0, 0, 0, 1)" + } } ] } diff --git a/layers/mvt/terrarium-hillshading.geojson b/layers/mvt/terrarium-hillshading.geojson index 88955f2..0e5356d 100644 --- a/layers/mvt/terrarium-hillshading.geojson +++ b/layers/mvt/terrarium-hillshading.geojson @@ -1,15 +1,12 @@ { "geometry": null, "properties": { - "attribution": { - "text": "Terrain Tiles from AWS", - "url": "https://registry.opendata.aws/terrain-tiles/" - }, "id": "terrarium-hillshading", - "name": "Hillshading", "overlay": true, "type": "mvt", - "url": "terrarium-hillshading-style" + "url": "terrarium-hillshading-style", + "mapUrl": "https://registry.opendata.aws/terrain-tiles/", + "attribution": "Terrain Tiles at Registry of Open Data on AWS: " }, "type": "Feature" } diff --git a/locales/en.json b/locales/en.json index f18c39a..c0e8ed4 100644 --- a/locales/en.json +++ b/locales/en.json @@ -133,6 +133,7 @@ "esri": "Esri World Imagery", "hikebike-hillshading": "Hillshading (Hike & Bike Map)", "hiking": "Hiking (Waymarked Trails)", + "hillshading": "Hillshading", "osm": "OpenStreetMap", "osmde": "OpenStreetMap.de", "outdoors": "Outdoors (Thunderforest)",