From 472a3e84a51a17ebf0f2fa6746d298d30eeb7b6a Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Thu, 28 May 2026 14:45:44 +0200 Subject: [PATCH 1/6] Block out files --- .../HillshadeLayer.stories.svelte | 32 ++++++++++ .../HillshadeLayer/HillshadeLayer.svelte | 59 +++++++++++++++++++ .../src/maplibre/HillshadeLayer/index.js | 2 + 3 files changed, 93 insertions(+) create mode 100644 components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte create mode 100644 components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte create mode 100644 components/src/maplibre/HillshadeLayer/index.js diff --git a/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte new file mode 100644 index 00000000..531c6b94 --- /dev/null +++ b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte @@ -0,0 +1,32 @@ + + + + +
+ + + +
+
+
+ + diff --git a/components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte b/components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte new file mode 100644 index 00000000..7ade7b8e --- /dev/null +++ b/components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte @@ -0,0 +1,59 @@ + diff --git a/components/src/maplibre/HillshadeLayer/index.js b/components/src/maplibre/HillshadeLayer/index.js new file mode 100644 index 00000000..d69c1f5a --- /dev/null +++ b/components/src/maplibre/HillshadeLayer/index.js @@ -0,0 +1,2 @@ +import HillshadeLayer from './HillshadeLayer.svelte'; +export default HillshadeLayer; From 0c6e0861c619fe4183d552cc7fc9b8b39a21b128 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Wed, 17 Jun 2026 11:46:26 +0200 Subject: [PATCH 2/6] Block out feature --- .../GeoJSONSource/GeoJSONSource.svelte | 13 ++----- .../HillshadeLayer.stories.svelte | 13 +++++++ .../HillshadeLayer/HillshadeLayer.svelte | 12 +----- .../HillshadeSource/HillshadeSource.svelte | 38 +++++++++++++++++++ .../src/maplibre/HillshadeSource/index.js | 2 + .../src/maplibre/Source/MapSource.svelte | 4 +- .../VectorTileSource/VectorTileSource.svelte | 15 ++------ .../{VectorTileSource => }/fetchTileJson.ts | 2 +- components/src/maplibre/types.ts | 13 +++++++ 9 files changed, 78 insertions(+), 34 deletions(-) create mode 100644 components/src/maplibre/HillshadeSource/HillshadeSource.svelte create mode 100644 components/src/maplibre/HillshadeSource/index.js rename components/src/maplibre/{VectorTileSource => }/fetchTileJson.ts (90%) diff --git a/components/src/maplibre/GeoJSONSource/GeoJSONSource.svelte b/components/src/maplibre/GeoJSONSource/GeoJSONSource.svelte index 7be2f3a4..1803e942 100644 --- a/components/src/maplibre/GeoJSONSource/GeoJSONSource.svelte +++ b/components/src/maplibre/GeoJSONSource/GeoJSONSource.svelte @@ -2,18 +2,13 @@ // See: https://maplibre.org/maplibre-gl-js/docs/API/classes/GeoJSONSource/ import { type GeoJSONSourceSpecification } from 'maplibre-gl'; import MapSource from '../Source/MapSource.svelte'; + import type { SourceProps } from '../types'; - interface GeoJSONSourceProps { - id: string; + interface GeoJSONSourceProps extends Omit { /** * GeoJSON object or URL */ data: GeoJSON.GeoJSON | string; - /** - * Attribution string for your data, usually rendered using an `` - */ - attribution?: string; - maxZoom?: number; /** * Use a field from the feature data for IDs. Must coerce to integer. */ @@ -35,7 +30,7 @@ generateId = false }: GeoJSONSourceProps = $props(); - const sourceSpec: GeoJSONSourceSpecification = { + const sourceSpec: GeoJSONSourceSpecification = $derived({ type: 'geojson', maxzoom: maxZoom, attribution, @@ -43,7 +38,7 @@ generateId, lineMetrics, data - }; + }); diff --git a/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte index 531c6b94..34b0e434 100644 --- a/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte +++ b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte @@ -7,6 +7,7 @@ import DesignTokens from '../../DesignTokens/DesignTokens.svelte'; import { SWRDataLabLight } from '../MapStyle'; + import HillshadeSource from '../HillshadeSource/HillshadeSource.svelte'; const { Story } = defineMeta({ title: 'Maplibre/Layer/HillshadeLayer', @@ -18,6 +19,18 @@
+ + +
diff --git a/components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte b/components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte index 7ade7b8e..421bd5f2 100644 --- a/components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte +++ b/components/src/maplibre/HillshadeLayer/HillshadeLayer.svelte @@ -3,11 +3,10 @@ import { getMapContext } from '../context.svelte.js'; import { onDestroy } from 'svelte'; - import { resetLayerEventListener } from '../utils.js'; interface HillshadeLayerProps extends Omit< maplibregl.HillshadeLayerSpecification, - 'id' | 'source' | 'source-layer' + 'id' | 'source' | 'source-layer' | 'type' > { id: string; sourceId: string; @@ -22,24 +21,17 @@ sourceId, sourceLayer, placeBelow, - type, paint, layout, - hovered = $bindable(), - selected = $bindable(), minZoom = 0, maxZoom = 24, - onclick, - onmousemove, - onmouseleave }: HillshadeLayerProps = $props(); const ctx = getMapContext(); - let beforeId: string | undefined = $state(); const layerSpec = $derived({ id, - type, + type: "hillshade", source: sourceId, 'source-layer': sourceLayer || '', layout: layout ?? {}, diff --git a/components/src/maplibre/HillshadeSource/HillshadeSource.svelte b/components/src/maplibre/HillshadeSource/HillshadeSource.svelte new file mode 100644 index 00000000..4578ba87 --- /dev/null +++ b/components/src/maplibre/HillshadeSource/HillshadeSource.svelte @@ -0,0 +1,38 @@ + + + diff --git a/components/src/maplibre/HillshadeSource/index.js b/components/src/maplibre/HillshadeSource/index.js new file mode 100644 index 00000000..d69c1f5a --- /dev/null +++ b/components/src/maplibre/HillshadeSource/index.js @@ -0,0 +1,2 @@ +import HillshadeLayer from './HillshadeLayer.svelte'; +export default HillshadeLayer; diff --git a/components/src/maplibre/Source/MapSource.svelte b/components/src/maplibre/Source/MapSource.svelte index d1596f2f..9d535ed7 100644 --- a/components/src/maplibre/Source/MapSource.svelte +++ b/components/src/maplibre/Source/MapSource.svelte @@ -1,12 +1,12 @@ From be91790c49bde72e8521ee9f0beb75df6cae30a9 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Wed, 17 Jun 2026 11:57:52 +0200 Subject: [PATCH 4/6] point to production tile server --- .../src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte index 5eea4785..fcd94e2f 100644 --- a/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte +++ b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte @@ -20,7 +20,7 @@
- + Date: Wed, 17 Jun 2026 12:01:13 +0200 Subject: [PATCH 5/6] rename hillshade to raster dem --- components/src/index.js | 2 ++ .../maplibre/HillshadeLayer/HillshadeLayer.stories.svelte | 8 ++++---- components/src/maplibre/HillshadeSource/index.js | 2 -- .../RasterDEMSource.svelte} | 6 +++--- components/src/maplibre/RasterDEMSource/index.js | 2 ++ 5 files changed, 11 insertions(+), 9 deletions(-) delete mode 100644 components/src/maplibre/HillshadeSource/index.js rename components/src/maplibre/{HillshadeSource/HillshadeSource.svelte => RasterDEMSource/RasterDEMSource.svelte} (84%) create mode 100644 components/src/maplibre/RasterDEMSource/index.js diff --git a/components/src/index.js b/components/src/index.js index a3e4ba1d..24c9cdf6 100644 --- a/components/src/index.js +++ b/components/src/index.js @@ -34,7 +34,9 @@ export { default as GeocoderControl } from './maplibre/GeocoderControl/GeocoderC export { default as NavigationControl } from './maplibre/NavigationControl/NavigationControl.svelte'; export { default as ScaleControl } from './maplibre/ScaleControl/ScaleControl.svelte'; export { default as VectorLayer } from './maplibre/VectorLayer/VectorLayer.svelte'; +export { default as HillshadeLayer } from './maplibre/HillshadeLayer/HillshadeLayer.svelte'; export { default as VectorTileSource } from './maplibre/VectorTileSource/VectorTileSource.svelte'; +export { default as RasterDEMSource } from './maplibre/RasterDEMSource/RasterDEMSource.svelte'; export { default as GeoJSONSource } from './maplibre/GeoJSONSource/GeoJSONSource.svelte'; export { default as ArrowSource } from './maplibre/ArrowSource/ArrowSource.svelte'; export { default as MapSource } from './maplibre/Source/MapSource.svelte'; diff --git a/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte index fcd94e2f..437e8295 100644 --- a/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte +++ b/components/src/maplibre/HillshadeLayer/HillshadeLayer.stories.svelte @@ -7,7 +7,7 @@ import DesignTokens from '../../DesignTokens/DesignTokens.svelte'; import { SWRDataLabLight } from '../MapStyle'; - import HillshadeSource from '../HillshadeSource/HillshadeSource.svelte'; + import RasterDEMSource from '../RasterDEMSource/RasterDEMSource.svelte'; const { Story } = defineMeta({ title: 'Maplibre/Layer/HillshadeLayer', @@ -20,8 +20,8 @@
- - + - +
diff --git a/components/src/maplibre/HillshadeSource/index.js b/components/src/maplibre/HillshadeSource/index.js deleted file mode 100644 index d69c1f5a..00000000 --- a/components/src/maplibre/HillshadeSource/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import HillshadeLayer from './HillshadeLayer.svelte'; -export default HillshadeLayer; diff --git a/components/src/maplibre/HillshadeSource/HillshadeSource.svelte b/components/src/maplibre/RasterDEMSource/RasterDEMSource.svelte similarity index 84% rename from components/src/maplibre/HillshadeSource/HillshadeSource.svelte rename to components/src/maplibre/RasterDEMSource/RasterDEMSource.svelte index 4578ba87..95b607dd 100644 --- a/components/src/maplibre/HillshadeSource/HillshadeSource.svelte +++ b/components/src/maplibre/RasterDEMSource/RasterDEMSource.svelte @@ -1,11 +1,11 @@