From cb3237fd1baba906fccaf20f035db225e623e196 Mon Sep 17 00:00:00 2001 From: kekehurry Date: Thu, 6 Jun 2024 11:24:12 -0400 Subject: [PATCH 1/2] allow more controls over geojson layer --- .../DeckglMap/deckglLayers/base/GeoJson.js | 66 ++++++++++++------- 1 file changed, 42 insertions(+), 24 deletions(-) diff --git a/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js b/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js index 11dd0f1d..b19ebc65 100644 --- a/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js +++ b/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js @@ -1,29 +1,47 @@ import {GeoJsonLayer} from '@deck.gl/layers'; - /** - * Data format: - * Valid GeoJSON object - */ - export default function GeoJsonBaseLayer({data, opacity}){ +/** + * Data format: + * Valid GeoJSON object + */ - return new GeoJsonLayer({ - id: data.id, - data: data.data, - pickable: data.properties.pickable || true, - stroked: data.properties.stroked || false, - filled: data.properties.filled || true, - extruded: data.properties.extruded || true, - pointType: data.properties.pointType || 'circle', - lineWidthScale: data.properties.lineWidthScale || 20, - lineWidthMinPixels: data.properties.lineWidthMinPixels || 2, - getFillColor: [160, 160, 180, 200], - getLineColor: d => d.properties.color, - getPointRadius: data.properties.pointRadius || 100, - getLineWidth: data.properties.lineWidth || 1, - getElevation: data.properties.elevation || 30, - opacity - }); - - +export default function GeoJsonBaseLayer({data, opacity}){ + if(data){ + return new GeoJsonLayer({ + id: data.id || Math.random().toString().split('.')[1], + data: data, + opacity: opacity || 0.5, + pickable: data.properties?.pickable || true, + stroked: data.properties?.stroked || false, + filled: data.properties?.filled || true, + extruded: data.properties?.extruded || true, + wireframe: data.properties?.wireframe || false, + pointType: data.properties?.pointType || 'circle', + autoHighlight: data.properties?.autoHighlight || true, + highlightColor: data.properties?.highlightColor || [242, 0, 117, 120], + lineWidthUnits: data.properties?.lineWidthUnits || 'pixels', + lineWidthMinPixels: data.properties?.lineWidthMinPixels || 1, + getFillColor: d => d.properties?.color || data.properties?.color || [160, 160, 180, 200], + getLineColor: d => d.properties?.lineColor || data.properties?.lineColor || [255, 255, 255], + getPointRadius: d => d.properties?.pointRadius || data.properties?.pointRadius || 10, + getLineWidth: d => d.properties?.lineWidth ||data.properties?.lineWidth || 1, + getElevation: d => d.properties?.height || data.properties?.height || 1, + updateTriggers: { + getFillColor: data, + getLineColor: data, + getPointRadius: data, + getLineWidth: data, + getElevation: data, + }, + transitions: { + getFillColor: data.properties?.duration || 500, + getElevation: data.properties?.duration || 500, + getLineWidth: data.properties?.duration || 500, + getPointRadius: data.properties?.duration || 500, + getLineColor: data.properties?.duration || 500, + } + }); + } +} \ No newline at end of file From 56f31defb85e2b5dc1e798dbad39b3e52893261a Mon Sep 17 00:00:00 2001 From: kekehurry Date: Thu, 6 Jun 2024 11:42:50 -0400 Subject: [PATCH 2/2] add git ignore --- .gitignore | 1 + src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 81001194..63df93fd 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ # misc .DS_Store +.env .env.local .env.development.local .env.test.local diff --git a/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js b/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js index b19ebc65..b645c4a8 100644 --- a/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js +++ b/src/views/CityScopeJS/DeckglMap/deckglLayers/base/GeoJson.js @@ -8,8 +8,8 @@ import {GeoJsonLayer} from '@deck.gl/layers'; export default function GeoJsonBaseLayer({data, opacity}){ if(data){ return new GeoJsonLayer({ - id: data.id || Math.random().toString().split('.')[1], - data: data, + id: data.id, + data: data.data, opacity: opacity || 0.5, pickable: data.properties?.pickable || true, stroked: data.properties?.stroked || false,