@npm9912/v-map 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +192 -96
- package/dist/cjs/{cesium-provider-BiFFyAl9.js → cesium-provider-CTtu9eTD.js} +6 -5
- package/dist/cjs/{deck-provider-Ctq3Q8a1.js → deck-provider-fNa818HH.js} +9 -9
- package/dist/cjs/events-BMG7RKne.js +11 -0
- package/dist/cjs/{geotiff-source-RaNzzWkC.js → geotiff-source-B9ARUE9z.js} +1 -1
- package/dist/cjs/{index-ISOEpMC3.js → index-9APmzoa2.js} +6 -6
- package/dist/cjs/{index-CbVT-Con.js → index-BJg0ncfC.js} +4 -4
- package/dist/cjs/{index-CJvvX4yx.js → index-C1ubapwF.js} +4 -4
- package/dist/cjs/{index-B8LHqjyg.js → index-ChrKyU6i.js} +4 -4
- package/dist/cjs/{index-JSwBbvGA.js → index-DmGHwivM.js} +1 -0
- package/dist/cjs/{layer-extension-B_olS0rc.js → layer-extension-D3a-1DFI.js} +1 -1
- package/dist/cjs/{leaflet-provider-DOqfs7g5.js → leaflet-provider-7Nw-AdV_.js} +6 -5
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{messages-D7h4m8Tx.js → messages-CFCxeG8p.js} +0 -9
- package/dist/cjs/{openlayers-provider-Dfeg6L4n.js → openlayers-provider-DMxYtFkS.js} +5 -4
- package/dist/cjs/{polygon-layer-B9PrN7vr.js → polygon-layer-Dx1ZWZP0.js} +1 -1
- package/dist/cjs/{scenegraph-layer-DwNoxQdi.js → scenegraph-layer-ctLehP0q.js} +1 -1
- package/dist/cjs/v-map-builder.cjs.entry.js +4 -3
- package/dist/cjs/v-map-error.cjs.entry.js +121 -0
- package/dist/cjs/v-map-layer-geojson_12.cjs.entry.js +11 -10
- package/dist/cjs/{v-map-layer-helper-iAzxAg9I.js → v-map-layer-helper-DnWpjZ_Q.js} +7 -6
- package/dist/cjs/v-map-layer-terrain-geotiff.cjs.entry.js +5 -4
- package/dist/cjs/v-map-layercontrol.cjs.entry.js +1 -1
- package/dist/cjs/v-map.cjs.js +2 -2
- package/dist/cjs/{v-map.v-map-layer-osm.v-map-layergroup-BsXp3BoL.js → v-map.v-map-layer-osm.v-map-layergroup-BJ3_NqAj.js} +16 -15
- package/dist/cjs/v-map_3.cjs.entry.js +5 -4
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/v-map/v-map.css +3 -0
- package/dist/collection/components/v-map-error/v-map-error.css +136 -0
- package/dist/collection/components/v-map-error/v-map-error.js +277 -0
- package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.js +1 -1
- package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.js +1 -1
- package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.js +1 -1
- package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.js +1 -1
- package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.js +1 -1
- package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.js +1 -1
- package/dist/collection/components/v-map-layergroup/v-map-layergroup.js +1 -1
- package/dist/collection/components/v-map-style/v-map-style.js +1 -1
- package/dist/components/cesium-provider.js +1 -1
- package/dist/components/deck-provider.js +1 -1
- package/dist/components/events.js +1 -1
- package/dist/components/geotiff-source.js +1 -1
- package/dist/components/leaflet-provider.js +1 -1
- package/dist/components/logger.js +1 -0
- package/dist/components/openlayers-provider.js +1 -1
- package/dist/components/v-map-builder.js +2 -2
- package/dist/components/v-map-error.d.ts +11 -0
- package/dist/components/v-map-error.js +1 -0
- package/dist/components/v-map-layer-geojson2.js +1 -1
- package/dist/components/v-map-layer-geotiff2.js +1 -1
- package/dist/components/v-map-layer-google2.js +1 -1
- package/dist/components/v-map-layer-helper.js +1 -1
- package/dist/components/v-map-layer-osm2.js +1 -1
- package/dist/components/v-map-layer-scatterplot2.js +1 -1
- package/dist/components/v-map-layer-terrain-geotiff.js +1 -1
- package/dist/components/v-map-layer-terrain2.js +1 -1
- package/dist/components/v-map-layer-tile3d2.js +1 -1
- package/dist/components/v-map-layer-wcs2.js +1 -1
- package/dist/components/v-map-layer-wfs2.js +1 -1
- package/dist/components/v-map-layer-wkt2.js +1 -1
- package/dist/components/v-map-layer-wms2.js +1 -1
- package/dist/components/v-map-layer-xyz2.js +1 -1
- package/dist/components/v-map-layergroup2.js +1 -1
- package/dist/components/v-map-style2.js +2 -2
- package/dist/components/v-map2.js +1 -1
- package/dist/esm/{cesium-provider-BJfAup3w.js → cesium-provider-Bh__cBGf.js} +6 -5
- package/dist/esm/{deck-provider-C7U9VDEq.js → deck-provider-DxIpS4lY.js} +9 -9
- package/dist/esm/events-CrV_misM.js +9 -0
- package/dist/esm/{geotiff-source-esnDnC-u.js → geotiff-source-BRjO-Dvr.js} +1 -1
- package/dist/esm/{index-BIEmlzCf.js → index-Bh2gBu9u.js} +5 -5
- package/dist/esm/{index-jzneDarq.js → index-BoNyIrdq.js} +1 -1
- package/dist/esm/{index-jN06TXUp.js → index-C3mnOs0I.js} +4 -4
- package/dist/esm/{index-B1zwA4IC.js → index-C63kfbil.js} +6 -6
- package/dist/esm/{index-DbSdn93t.js → index-DxbztwCv.js} +7 -7
- package/dist/esm/{layer-extension-CZXK5goK.js → layer-extension-C5Y2UES3.js} +1 -1
- package/dist/esm/{leaflet-provider-Q41TB6ku.js → leaflet-provider-k6JSYiYX.js} +6 -5
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{messages-CMKJzsgL.js → messages-QJHuuz0g.js} +1 -9
- package/dist/esm/{openlayers-provider-CMsDsQTQ.js → openlayers-provider-DIquf3Tx.js} +5 -4
- package/dist/esm/{polygon-layer-ByhxGhWC.js → polygon-layer-ZIT5mJy5.js} +1 -1
- package/dist/esm/{scenegraph-layer-09K_B6DT.js → scenegraph-layer-CNIRd2uu.js} +1 -1
- package/dist/esm/v-map-builder.entry.js +3 -2
- package/dist/esm/v-map-error.entry.js +119 -0
- package/dist/esm/v-map-layer-geojson_12.entry.js +10 -9
- package/dist/esm/{v-map-layer-helper-Dys44Cgo.js → v-map-layer-helper-CuHYsU9f.js} +2 -1
- package/dist/esm/v-map-layer-terrain-geotiff.entry.js +5 -4
- package/dist/esm/v-map-layercontrol.entry.js +1 -1
- package/dist/esm/v-map.js +3 -3
- package/dist/esm/{v-map.v-map-layer-osm.v-map-layergroup-B4pFHuSf.js → v-map.v-map-layer-osm.v-map-layergroup-Zwdvm9PG.js} +10 -9
- package/dist/esm/v-map_3.entry.js +5 -4
- package/dist/types/components/v-map-error/v-map-error.d.ts +79 -0
- package/dist/types/components.d.ts +128 -0
- package/dist/v-map/p-05ee633f.entry.js +1 -0
- package/dist/v-map/p-08ad1392.entry.js +1 -0
- package/dist/v-map/p-2-mR3oVa.js +1 -0
- package/dist/v-map/{p-c21c93fe.entry.js → p-3a57b64a.entry.js} +1 -1
- package/dist/v-map/p-58dda864.entry.js +1 -0
- package/dist/v-map/p-915314c0.entry.js +10 -0
- package/dist/v-map/{p-MyTSFnEk.js → p-9Rt23jlQ.js} +1 -1
- package/dist/v-map/p-BSsFEMZP.js +1 -0
- package/dist/v-map/{p-jzneDarq.js → p-BoNyIrdq.js} +2 -2
- package/dist/v-map/p-BpE6L1g0.js +1 -0
- package/dist/v-map/{p-DvHXtWUg.js → p-C0M0-Kvt.js} +1 -1
- package/dist/v-map/p-CbiLpFhO.js +1 -0
- package/dist/v-map/p-Ci70E1EM.js +1 -0
- package/dist/v-map/p-CrV_misM.js +1 -0
- package/dist/v-map/{p-DrOQ9V4h.js → p-DAf4itFZ.js} +1 -1
- package/dist/v-map/p-DVBtCUtQ.js +1 -0
- package/dist/v-map/{p-CZqY0yW4.js → p-DuJ_mTaq.js} +1 -1
- package/dist/v-map/p-G6iftXUC.js +1 -0
- package/dist/v-map/{p-CMKJzsgL.js → p-QJHuuz0g.js} +1 -1
- package/dist/v-map/{p-aa410e64.entry.js → p-e21ea0ce.entry.js} +2 -2
- package/dist/v-map/{p-DmICdG34.js → p-rCyRSFJb.js} +2 -2
- package/dist/v-map/{p-CafTHT9i.js → p-vhbi5XXi.js} +1 -1
- package/dist/v-map/{p-Dckgonw8.js → p-yXLNXXx-.js} +1 -1
- package/dist/v-map/v-map.esm.js +1 -1
- package/package.json +29 -5
- package/dist/v-map/p--vVleK-M.js +0 -1
- package/dist/v-map/p-09d10db0.entry.js +0 -1
- package/dist/v-map/p-5eba6058.entry.js +0 -10
- package/dist/v-map/p-6b102336.entry.js +0 -1
- package/dist/v-map/p-BdijL4Av.js +0 -1
- package/dist/v-map/p-BeFu0ap4.js +0 -1
- package/dist/v-map/p-BxFJezdK.js +0 -1
- package/dist/v-map/p-DCTHyf58.js +0 -1
- package/dist/v-map/p-WaMDUuAz.js +0 -1
- package/dist/v-map/p-uiIP-taz.js +0 -1
package/README.md
CHANGED
|
@@ -1,121 +1,214 @@
|
|
|
1
|
-
# V-Map
|
|
1
|
+
# V-Map
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
Gebaut mit [Stencil.js](https://stenciljs.com/)
|
|
3
|
+
**Provider-agnostische Web-Mapping-Komponentenbibliothek für Webanwendungen.**
|
|
4
|
+
Gebaut mit [Stencil.js](https://stenciljs.com/) und [OpenLayers](https://openlayers.org/), [Cesium](https://cesium.com/), [Leaflet](https://leafletjs.com/) und [Deck.gl](https://deck.gl/) als austauschbare Render-Provider.
|
|
5
5
|
|
|
6
|
-
[](https://
|
|
7
|
-
[](https://www.npmjs.com/package/@npm9912/v-map)
|
|
7
|
+
[](https://github.com/pt9912/v-map/actions/workflows/test.yml)
|
|
8
|
+
[](https://github.com/pt9912/v-map/actions/workflows/build.yml)
|
|
9
|
+
[](https://pt9912.github.io/v-map/)
|
|
9
10
|
[](https://opensource.org/licenses/MIT)
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
13
|
-
##
|
|
14
|
+
## Features
|
|
14
15
|
|
|
15
|
-
- **
|
|
16
|
-
- **Layer-
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
23
|
-
- **Devcontainer-Support**: Voll ausgestattete Entwicklungsumgebung mit Docker
|
|
16
|
+
- **Provider-agnostisch:** OpenLayers, Leaflet, Cesium und Deck.gl hinter einem einheitlichen deklarativen Web-Component-API — ein Providerwechsel ist eine einzige Prop (`flavour`).
|
|
17
|
+
- **Reicher Layer-Katalog:** OSM, XYZ, WMS, WFS, WCS, GeoJSON, WKT, GeoTIFF, 3D-Tiles, Terrain, Deck.gl-Scatterplot, Google Tiles.
|
|
18
|
+
- **Layer-Gruppen & Layer-Control:** Basemap-/Overlay-Verwaltung mit Sichtbarkeitssteuerung (`v-map-layergroup`, `v-map-layercontrol`).
|
|
19
|
+
- **Styling:** `v-map-style` mit Unterstützung für [GeoStyler](https://geostyler.org/) JSON und SLD.
|
|
20
|
+
- **Deklaratives Building:** `v-map-builder` zum Konfigurieren komplexer Karten per Attribut.
|
|
21
|
+
- **Runtime-Error-API:** einheitliches `vmap-error` Event über alle Layer-Komponenten für konsistente Fehlerbehandlung.
|
|
22
|
+
- **Touch-optimiert:** Desktop und mobile Geräte.
|
|
23
|
+
- **Vollständige TypeScript-Typen** und JSX-Integration für Stencil/React/Vue/Svelte.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## Installation
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
|
|
31
|
-
# oder
|
|
32
|
-
|
|
30
|
+
pnpm add @npm9912/v-map
|
|
31
|
+
# oder
|
|
32
|
+
npm install @npm9912/v-map
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
Je nach gewünschtem Provider installierst du zusätzlich die passende Peer-Dependency:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pnpm add ol # für flavour="ol"
|
|
39
|
+
pnpm add leaflet # für flavour="leaflet"
|
|
40
|
+
pnpm add cesium # für flavour="cesium"
|
|
41
|
+
pnpm add @deck.gl/core # für flavour="deck"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Verwendung
|
|
47
|
+
|
|
48
|
+
### Plain HTML / ESM
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<!DOCTYPE html>
|
|
52
|
+
<html>
|
|
53
|
+
<head>
|
|
54
|
+
<script type="module"
|
|
55
|
+
src="./node_modules/@npm9912/v-map/dist/v-map/v-map.esm.js"></script>
|
|
56
|
+
<style>v-map { display: block; width: 100%; height: 100vh; }</style>
|
|
57
|
+
</head>
|
|
58
|
+
<body>
|
|
59
|
+
<v-map flavour="ol">
|
|
60
|
+
<v-map-layergroup group-title="Basiskarten" basemapid="OSM-BASE">
|
|
61
|
+
<v-map-layer-osm id="OSM-BASE" label="OpenStreetMap"
|
|
62
|
+
z-index="0" opacity="1.0"></v-map-layer-osm>
|
|
63
|
+
</v-map-layergroup>
|
|
64
|
+
<v-map-layergroup group-title="Overlays">
|
|
65
|
+
<v-map-layer-geojson src="data/points.geojson"></v-map-layer-geojson>
|
|
66
|
+
</v-map-layergroup>
|
|
67
|
+
</v-map>
|
|
68
|
+
</body>
|
|
69
|
+
</html>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Framework-Integration (React, Vue, Svelte, SvelteKit …)
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { defineCustomElements } from '@npm9912/v-map/loader';
|
|
76
|
+
|
|
77
|
+
defineCustomElements();
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Danach stehen die Custom Elements (`<v-map>`, `<v-map-layer-osm>`, …) im gesamten Projekt zur Verfügung.
|
|
81
|
+
|
|
82
|
+
Eine vollständige SvelteKit-Integration findest du unter [`demo/sveltekit-demo/`](./demo/sveltekit-demo/).
|
|
83
|
+
|
|
84
|
+
### Unterstützte `flavour`-Werte
|
|
85
|
+
|
|
86
|
+
| Wert | Render-Provider |
|
|
87
|
+
|------------|----------------------------------|
|
|
88
|
+
| `ol` | OpenLayers (Default) |
|
|
89
|
+
| `leaflet` | Leaflet |
|
|
90
|
+
| `cesium` | CesiumJS (2D + 3D Globus) |
|
|
91
|
+
| `deck` | Deck.gl (GPU-beschleunigt) |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Komponenten-Übersicht
|
|
96
|
+
|
|
97
|
+
Insgesamt 19 Web Components in `src/components/`:
|
|
98
|
+
|
|
99
|
+
**Karten-Container & Infrastruktur**
|
|
100
|
+
- `v-map` — Haupt-Kartencontainer
|
|
101
|
+
- `v-map-builder` — deklaratives Building komplexer Karten
|
|
102
|
+
- `v-map-layergroup` — Gruppierung und Sichtbarkeitssteuerung
|
|
103
|
+
- `v-map-layercontrol` — interaktives Layer-Control
|
|
104
|
+
- `v-map-style` — Styling via GeoStyler JSON oder SLD
|
|
105
|
+
- `v-map-error` — deklarative Fehler-Toasts ohne JavaScript
|
|
106
|
+
|
|
107
|
+
**Raster-Layer**
|
|
108
|
+
- `v-map-layer-osm` — OpenStreetMap-Tiles
|
|
109
|
+
- `v-map-layer-xyz` — generische XYZ-Tile-Sources
|
|
110
|
+
- `v-map-layer-google` — Google Maps Tiles
|
|
111
|
+
- `v-map-layer-wms` — OGC WMS
|
|
112
|
+
- `v-map-layer-wcs` — OGC WCS
|
|
113
|
+
- `v-map-layer-geotiff` — GeoTIFF
|
|
114
|
+
|
|
115
|
+
**Vektor-Layer**
|
|
116
|
+
- `v-map-layer-geojson` — GeoJSON
|
|
117
|
+
- `v-map-layer-wkt` — Well-Known-Text
|
|
118
|
+
- `v-map-layer-wfs` — OGC WFS
|
|
119
|
+
- `v-map-layer-scatterplot` — Deck.gl-Scatterplot
|
|
120
|
+
|
|
121
|
+
**3D & Terrain**
|
|
122
|
+
- `v-map-layer-tile3d` — 3D Tiles (Cesium)
|
|
123
|
+
- `v-map-layer-terrain` — Terrain-Provider
|
|
124
|
+
- `v-map-layer-terrain-geotiff` — Terrain aus GeoTIFF
|
|
125
|
+
|
|
126
|
+
Vollständige API-Referenz: [GitHub Pages Dokumentation](https://pt9912.github.io/v-map/).
|
|
127
|
+
|
|
35
128
|
---
|
|
36
129
|
|
|
37
|
-
##
|
|
130
|
+
## Error Handling
|
|
131
|
+
|
|
132
|
+
Alle Layer-Komponenten emittieren ein einheitliches `vmap-error` Event bei Lade- und Laufzeitfehlern.
|
|
133
|
+
|
|
134
|
+
**Deklarativ über `<v-map-error>` (kein JavaScript nötig):**
|
|
135
|
+
|
|
136
|
+
```html
|
|
137
|
+
<v-map flavour="ol">
|
|
138
|
+
<v-map-error position="top-right" auto-dismiss="5000"></v-map-error>
|
|
139
|
+
<!-- ... layer ... -->
|
|
140
|
+
</v-map>
|
|
141
|
+
```
|
|
38
142
|
|
|
39
|
-
|
|
40
|
-
import { VMap } from '@pt9912/v-map';
|
|
143
|
+
**Programmatisch:**
|
|
41
144
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<v-map-layer-geojson src="data/points.geojson"></v-map-layer-geojson>
|
|
48
|
-
</v-map-layergroup>
|
|
49
|
-
</v-map>;
|
|
145
|
+
```ts
|
|
146
|
+
document.querySelector('v-map')?.addEventListener('vmap-error', (e) => {
|
|
147
|
+
const { detail } = e as CustomEvent;
|
|
148
|
+
console.error(detail.type, detail.message);
|
|
149
|
+
});
|
|
50
150
|
```
|
|
51
151
|
|
|
52
|
-
|
|
53
|
-
- Layer können kombiniert und gruppiert werden (`<v-map-layergroup>`).
|
|
152
|
+
Details: [Error-Handling Guide](https://pt9912.github.io/v-map/guides/error-handling).
|
|
54
153
|
|
|
55
154
|
---
|
|
56
155
|
|
|
57
|
-
##
|
|
156
|
+
## Entwicklung
|
|
58
157
|
|
|
59
158
|
### Voraussetzungen
|
|
60
159
|
|
|
61
160
|
- Node.js ≥ 22
|
|
62
161
|
- pnpm ≥ 9
|
|
63
|
-
- Docker (für Devcontainer
|
|
162
|
+
- optional: Docker (für den Devcontainer)
|
|
64
163
|
|
|
65
164
|
### Setup
|
|
66
165
|
|
|
67
166
|
```bash
|
|
68
167
|
pnpm install
|
|
168
|
+
pnpm start # Dev-Server auf http://localhost:3333
|
|
69
169
|
```
|
|
70
170
|
|
|
71
|
-
###
|
|
171
|
+
### Tests
|
|
172
|
+
|
|
173
|
+
Das Projekt nutzt [Vitest](https://vitest.dev/) mit den Projekten `spec`, `unit` und `browser`.
|
|
72
174
|
|
|
73
175
|
```bash
|
|
74
|
-
pnpm
|
|
176
|
+
pnpm test # spec + browser
|
|
177
|
+
pnpm test:coverage # alle Vitest-Projekte mit Coverage
|
|
178
|
+
pnpm test:vitest:browser # nur Browser-/Runtime-Tests
|
|
179
|
+
pnpm test:vitest:browser:watch # Browser-Tests im Watch-Modus
|
|
75
180
|
```
|
|
76
181
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## 🧪 Tests
|
|
182
|
+
Hintergrund und CI-Hinweise: `docs/dev/vitest.md`.
|
|
82
183
|
|
|
83
|
-
|
|
184
|
+
### Storybook
|
|
84
185
|
|
|
85
186
|
```bash
|
|
86
|
-
pnpm
|
|
87
|
-
pnpm test:coverage # alle Vitest-Projekte mit Coverage
|
|
88
|
-
pnpm test:vitest:browser # Browser-/Runtime-Tests
|
|
89
|
-
pnpm test:vitest:browser:watch # Browser-Tests im Watch-Modus
|
|
187
|
+
pnpm storybook # http://localhost:6006
|
|
90
188
|
```
|
|
91
189
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
## 📖 Storybook
|
|
95
|
-
|
|
96
|
-
Interaktive Dokumentation der Komponenten:
|
|
190
|
+
### Dokumentation lokal bauen
|
|
97
191
|
|
|
98
192
|
```bash
|
|
99
|
-
pnpm
|
|
193
|
+
pnpm docs:dev # VitePress Dev-Server
|
|
194
|
+
pnpm docs:build # Statische Ausgabe in docs/.vitepress/dist
|
|
100
195
|
```
|
|
101
196
|
|
|
102
|
-
Erreichbar unter: [http://localhost:6006](http://localhost:6006)
|
|
103
|
-
|
|
104
197
|
---
|
|
105
198
|
|
|
106
|
-
##
|
|
199
|
+
## Devcontainer
|
|
107
200
|
|
|
108
|
-
Das Projekt enthält eine vorkonfigurierte
|
|
201
|
+
Das Projekt enthält eine vorkonfigurierte Devcontainer-Umgebung (`.devcontainer/`):
|
|
109
202
|
|
|
110
|
-
-
|
|
111
|
-
-
|
|
203
|
+
- Basis-Image `node:22`
|
|
204
|
+
- pnpm, GitHub CLI, ESLint, Prettier, Vitest vorinstalliert
|
|
112
205
|
- Automatisches Setup via `post-create.sh`
|
|
113
206
|
|
|
114
|
-
Öffne das Repo in [VS Code Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) oder [GitHub Codespaces].
|
|
207
|
+
Öffne das Repo in [VS Code Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) oder [GitHub Codespaces](https://github.com/features/codespaces).
|
|
115
208
|
|
|
116
209
|
---
|
|
117
210
|
|
|
118
|
-
##
|
|
211
|
+
## Build & Release
|
|
119
212
|
|
|
120
213
|
### Build
|
|
121
214
|
|
|
@@ -123,63 +216,66 @@ Das Projekt enthält eine vorkonfigurierte **Devcontainer-Umgebung**:
|
|
|
123
216
|
pnpm build
|
|
124
217
|
```
|
|
125
218
|
|
|
126
|
-
Erzeugt
|
|
219
|
+
Erzeugt die distributierbaren Bundles in `dist/` sowie den `loader/` für Framework-Integration.
|
|
127
220
|
|
|
128
221
|
### Release
|
|
129
222
|
|
|
130
|
-
Releases werden
|
|
223
|
+
Releases werden **vollautomatisch** durch [semantic-release](https://semantic-release.gitbook.io/) erstellt. Ausgelöst wird der Release-Workflow durch einen Merge von `develop` nach `main`.
|
|
131
224
|
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
pnpm release
|
|
137
|
-
```
|
|
225
|
+
- Versionierung und Changelog entstehen aus den [Conventional Commits](https://www.conventionalcommits.org/) seit dem letzten Tag.
|
|
226
|
+
- npm-Publish, GitHub-Release und Tag werden automatisch erzeugt.
|
|
227
|
+
- Vollständige Anleitung, Voraussetzungen und Fehlerbehebung: **[`docs/releasing.md`](./docs/releasing.md)**.
|
|
138
228
|
|
|
139
229
|
---
|
|
140
230
|
|
|
141
|
-
##
|
|
231
|
+
## Projektstruktur
|
|
142
232
|
|
|
143
233
|
```
|
|
144
234
|
v-map/
|
|
145
235
|
├── src/
|
|
146
|
-
│ ├── components/
|
|
147
|
-
│
|
|
148
|
-
│
|
|
149
|
-
│
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
│
|
|
154
|
-
├──
|
|
155
|
-
|
|
156
|
-
├──
|
|
157
|
-
├──
|
|
158
|
-
├──
|
|
159
|
-
|
|
236
|
+
│ ├── components/ # 19 Web Components (v-map, v-map-layer-*, …)
|
|
237
|
+
│ ├── map-provider/ # Provider-Implementierungen (ol, leaflet, cesium, deck)
|
|
238
|
+
│ ├── testing/ # Test-Setups und Mocks
|
|
239
|
+
│ └── index.ts # Entry Point
|
|
240
|
+
├── loader/ # Framework-Loader (defineCustomElements)
|
|
241
|
+
├── dist/ # Build-Artefakte (generiert)
|
|
242
|
+
├── docs/
|
|
243
|
+
│ ├── releasing.md # Release-Prozess
|
|
244
|
+
│ ├── dev/ # Interne Entwicklerdoku
|
|
245
|
+
│ └── .vitepress/ # VitePress-Konfiguration
|
|
246
|
+
├── demo/ # HTML- und SvelteKit-Integrationsdemos
|
|
247
|
+
├── .devcontainer/ # VS Code / Codespaces Setup
|
|
248
|
+
├── .github/workflows/ # CI/CD Pipelines (test, test-browser, build, release, docs)
|
|
249
|
+
├── .releaserc.json # semantic-release Konfiguration
|
|
250
|
+
├── stencil.config.ts # Stencil-Konfiguration
|
|
251
|
+
├── vite.config.ts # Vite-Konfiguration
|
|
252
|
+
└── vitest.config.mts # Vitest-Projekte
|
|
160
253
|
```
|
|
161
254
|
|
|
162
255
|
---
|
|
163
256
|
|
|
164
257
|
## Architektur
|
|
165
258
|
|
|
166
|
-
- Saubere Trennung von deklarativem DOM-API (
|
|
167
|
-
|
|
168
|
-
-
|
|
259
|
+
- **Saubere Trennung** von deklarativem DOM-API (Web Components) und imperativer Kartenlogik (Provider).
|
|
260
|
+
- **Engine-agnostisch:** Austausch bzw. Koexistenz von OpenLayers, Leaflet, Deck.gl und Cesium über ein klares Interface.
|
|
261
|
+
- **Typsicherheit** durch `LayerConfig`-Union mit exhaustiveness checks.
|
|
262
|
+
- **Shadow-DOM-kompatibel:** CSS-Injection, Adopted Stylesheets.
|
|
263
|
+
- **Erweiterbarkeit:** Neue Layer-Typen und Engines fügen sich je über einen Adapter ein.
|
|
264
|
+
- **Wiederverwendbarkeit:** `VMapLayerHelper` als einheitliche Registrierungs-/Update-Pipeline.
|
|
265
|
+
- **Konsistentes Error-API:** einheitliches `vmap-error` Event über alle Layer-Komponenten.
|
|
169
266
|
|
|
170
|
-
|
|
267
|
+
---
|
|
171
268
|
|
|
172
|
-
|
|
269
|
+
## Contributing
|
|
173
270
|
|
|
174
|
-
|
|
271
|
+
Pull Requests und Issues sind willkommen.
|
|
175
272
|
|
|
176
|
-
-
|
|
273
|
+
- Branch-Strategie: Feature-Branch → `develop` → `main` (siehe `docs/releasing.md`)
|
|
274
|
+
- Commit-Format: [Conventional Commits](https://www.conventionalcommits.org/)
|
|
275
|
+
- Alle Tests und Lints müssen grün sein (`pnpm test`, `pnpm lint`, `pnpm typecheck`)
|
|
177
276
|
|
|
178
277
|
---
|
|
179
278
|
|
|
180
|
-
##
|
|
279
|
+
## Lizenz
|
|
181
280
|
|
|
182
|
-
|
|
183
|
-
Bitte halte dich an [Conventional Commits](https://www.conventionalcommits.org/).
|
|
184
|
-
|
|
185
|
-
---
|
|
281
|
+
[MIT](./LICENSE)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var messages = require('./messages-
|
|
4
|
-
var vMap_vMapLayerOsm_vMapLayergroup_entry = require('./v-map.v-map-layer-osm.v-map-layergroup-
|
|
5
|
-
var geotiffSource = require('./geotiff-source-
|
|
6
|
-
require('./index-
|
|
7
|
-
require('./
|
|
3
|
+
var messages = require('./messages-CFCxeG8p.js');
|
|
4
|
+
var vMap_vMapLayerOsm_vMapLayergroup_entry = require('./v-map.v-map-layer-osm.v-map-layergroup-BJ3_NqAj.js');
|
|
5
|
+
var geotiffSource = require('./geotiff-source-B9ARUE9z.js');
|
|
6
|
+
require('./index-DmGHwivM.js');
|
|
7
|
+
require('./events-BMG7RKne.js');
|
|
8
|
+
require('./v-map-layer-helper-DnWpjZ_Q.js');
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Eine Gruppe verwaltet Sichtbarkeit & Basemap-Filter ihrer Cesium-Layer.
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var styleconfig = require('./styleconfig-CVRqArk-.js');
|
|
4
4
|
var index_browser = require('./index.browser-DQhD8Jwl.js');
|
|
5
5
|
var index = require('./index-BIL4VsgP.js');
|
|
6
|
-
var messages = require('./messages-
|
|
7
|
-
var geotiffSource = require('./geotiff-source-
|
|
6
|
+
var messages = require('./messages-CFCxeG8p.js');
|
|
7
|
+
var geotiffSource = require('./geotiff-source-B9ARUE9z.js');
|
|
8
8
|
var core = require('@loaders.gl/core');
|
|
9
9
|
var images = require('@loaders.gl/images');
|
|
10
10
|
var loaderUtils = require('@loaders.gl/loader-utils');
|
|
@@ -41,9 +41,9 @@ async function createDeckGLGeoTIFFLayer(props) {
|
|
|
41
41
|
const [
|
|
42
42
|
//{ Layer: BaseLayer },
|
|
43
43
|
{ CompositeLayer }, { TileLayer }, { BitmapLayer }, { default: proj4 }, geotiffModule, geokeysModule,] = await Promise.all([
|
|
44
|
-
Promise.resolve().then(function () { return require('./index-
|
|
45
|
-
Promise.resolve().then(function () { return require('./index-
|
|
46
|
-
Promise.resolve().then(function () { return require('./index-
|
|
44
|
+
Promise.resolve().then(function () { return require('./index-ChrKyU6i.js'); }),
|
|
45
|
+
Promise.resolve().then(function () { return require('./index-9APmzoa2.js'); }),
|
|
46
|
+
Promise.resolve().then(function () { return require('./index-BJg0ncfC.js'); }),
|
|
47
47
|
Promise.resolve().then(function () { return require('./index-B1oGO1g-.js'); }),
|
|
48
48
|
Promise.resolve().then(function () { return require('./geotiff-CEwvF9cG.js'); }).then(function (n) { return n.geotiff; }),
|
|
49
49
|
Promise.resolve().then(function () { return require('./main-dist-7TykwFci.js'); }).then(function (n) { return n.mainDist; }),
|
|
@@ -505,10 +505,10 @@ const TILE_LAYER_LOG_PREFIX = 'v-map - deck - terrain-geotiff - tilelayer - ';
|
|
|
505
505
|
*/
|
|
506
506
|
async function createDeckGLGeoTIFFTerrainLayer(props) {
|
|
507
507
|
const [{ CompositeLayer }, { TileLayer }, { BitmapLayer }, { SimpleMeshLayer }, MartiniModule, { default: proj4 }, geotiffModule, geokeysModule,] = await Promise.all([
|
|
508
|
-
Promise.resolve().then(function () { return require('./index-
|
|
509
|
-
Promise.resolve().then(function () { return require('./index-
|
|
510
|
-
Promise.resolve().then(function () { return require('./index-
|
|
511
|
-
Promise.resolve().then(function () { return require('./index-
|
|
508
|
+
Promise.resolve().then(function () { return require('./index-ChrKyU6i.js'); }),
|
|
509
|
+
Promise.resolve().then(function () { return require('./index-9APmzoa2.js'); }),
|
|
510
|
+
Promise.resolve().then(function () { return require('./index-BJg0ncfC.js'); }),
|
|
511
|
+
Promise.resolve().then(function () { return require('./index-C1ubapwF.js'); }),
|
|
512
512
|
Promise.resolve().then(function () { return require('./index-Blku2QY8.js'); }),
|
|
513
513
|
Promise.resolve().then(function () { return require('./index-B1oGO1g-.js'); }),
|
|
514
514
|
Promise.resolve().then(function () { return require('./geotiff-CEwvF9cG.js'); }).then(function (n) { return n.geotiff; }),
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var deckProvider = require('./deck-provider-
|
|
4
|
-
var polygonLayer = require('./polygon-layer-
|
|
3
|
+
var deckProvider = require('./deck-provider-fNa818HH.js');
|
|
4
|
+
var polygonLayer = require('./polygon-layer-Dx1ZWZP0.js');
|
|
5
5
|
var wms = require('@loaders.gl/wms');
|
|
6
6
|
var _commonjsHelpers = require('./_commonjsHelpers-B83fTs8d.js');
|
|
7
|
-
var scenegraphLayer = require('./scenegraph-layer-
|
|
7
|
+
var scenegraphLayer = require('./scenegraph-layer-ctLehP0q.js');
|
|
8
8
|
var core = require('@loaders.gl/core');
|
|
9
9
|
var tiles = require('@loaders.gl/tiles');
|
|
10
10
|
var _3dTiles = require('@loaders.gl/3d-tiles');
|
|
11
11
|
var mvt = require('@loaders.gl/mvt');
|
|
12
12
|
var gis = require('@loaders.gl/gis');
|
|
13
|
-
var layerExtension = require('./layer-extension-
|
|
13
|
+
var layerExtension = require('./layer-extension-D3a-1DFI.js');
|
|
14
14
|
require('./styleconfig-CVRqArk-.js');
|
|
15
15
|
require('./index.browser-DQhD8Jwl.js');
|
|
16
16
|
require('./index-BIL4VsgP.js');
|
|
17
|
-
require('./messages-
|
|
18
|
-
require('./geotiff-source-
|
|
17
|
+
require('./messages-CFCxeG8p.js');
|
|
18
|
+
require('./geotiff-source-B9ARUE9z.js');
|
|
19
19
|
require('@loaders.gl/images');
|
|
20
20
|
require('@loaders.gl/loader-utils');
|
|
21
21
|
require('@loaders.gl/terrain');
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var polygonLayer = require('./polygon-layer-
|
|
4
|
-
var deckProvider = require('./deck-provider-
|
|
3
|
+
var polygonLayer = require('./polygon-layer-Dx1ZWZP0.js');
|
|
4
|
+
var deckProvider = require('./deck-provider-fNa818HH.js');
|
|
5
5
|
require('./styleconfig-CVRqArk-.js');
|
|
6
6
|
require('./index.browser-DQhD8Jwl.js');
|
|
7
7
|
require('./index-BIL4VsgP.js');
|
|
8
8
|
require('./_commonjsHelpers-B83fTs8d.js');
|
|
9
|
-
require('./messages-
|
|
10
|
-
require('./geotiff-source-
|
|
9
|
+
require('./messages-CFCxeG8p.js');
|
|
10
|
+
require('./geotiff-source-B9ARUE9z.js');
|
|
11
11
|
require('@loaders.gl/core');
|
|
12
12
|
require('@loaders.gl/images');
|
|
13
13
|
require('@loaders.gl/loader-utils');
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var deckProvider = require('./deck-provider-
|
|
4
|
-
var scenegraphLayer = require('./scenegraph-layer-
|
|
3
|
+
var deckProvider = require('./deck-provider-fNa818HH.js');
|
|
4
|
+
var scenegraphLayer = require('./scenegraph-layer-ctLehP0q.js');
|
|
5
5
|
require('./styleconfig-CVRqArk-.js');
|
|
6
6
|
require('./index.browser-DQhD8Jwl.js');
|
|
7
7
|
require('./index-BIL4VsgP.js');
|
|
8
8
|
require('./_commonjsHelpers-B83fTs8d.js');
|
|
9
|
-
require('./messages-
|
|
10
|
-
require('./geotiff-source-
|
|
9
|
+
require('./messages-CFCxeG8p.js');
|
|
10
|
+
require('./geotiff-source-B9ARUE9z.js');
|
|
11
11
|
require('@loaders.gl/core');
|
|
12
12
|
require('@loaders.gl/images');
|
|
13
13
|
require('@loaders.gl/loader-utils');
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var deckProvider = require('./deck-provider-
|
|
4
|
-
var layerExtension = require('./layer-extension-
|
|
3
|
+
var deckProvider = require('./deck-provider-fNa818HH.js');
|
|
4
|
+
var layerExtension = require('./layer-extension-D3a-1DFI.js');
|
|
5
5
|
require('./styleconfig-CVRqArk-.js');
|
|
6
6
|
require('./index.browser-DQhD8Jwl.js');
|
|
7
7
|
require('./index-BIL4VsgP.js');
|
|
8
8
|
require('./_commonjsHelpers-B83fTs8d.js');
|
|
9
|
-
require('./messages-
|
|
10
|
-
require('./geotiff-source-
|
|
9
|
+
require('./messages-CFCxeG8p.js');
|
|
10
|
+
require('./geotiff-source-B9ARUE9z.js');
|
|
11
11
|
require('@loaders.gl/core');
|
|
12
12
|
require('@loaders.gl/images');
|
|
13
13
|
require('@loaders.gl/loader-utils');
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var vMap_vMapLayerOsm_vMapLayergroup_entry = require('./v-map.v-map-layer-osm.v-map-layergroup-
|
|
3
|
+
var vMap_vMapLayerOsm_vMapLayergroup_entry = require('./v-map.v-map-layer-osm.v-map-layergroup-BJ3_NqAj.js');
|
|
4
4
|
var L = require('leaflet');
|
|
5
|
-
var messages = require('./messages-
|
|
5
|
+
var messages = require('./messages-CFCxeG8p.js');
|
|
6
6
|
var styleconfig = require('./styleconfig-CVRqArk-.js');
|
|
7
|
-
var geotiffSource = require('./geotiff-source-
|
|
7
|
+
var geotiffSource = require('./geotiff-source-B9ARUE9z.js');
|
|
8
8
|
var index = require('./index-BIL4VsgP.js');
|
|
9
9
|
var index_browser = require('./index.browser-DQhD8Jwl.js');
|
|
10
|
-
require('./index-
|
|
11
|
-
require('./
|
|
10
|
+
require('./index-DmGHwivM.js');
|
|
11
|
+
require('./events-BMG7RKne.js');
|
|
12
|
+
require('./v-map-layer-helper-DnWpjZ_Q.js');
|
|
12
13
|
require('./_commonjsHelpers-B83fTs8d.js');
|
|
13
14
|
|
|
14
15
|
function _interopNamespaceDefault(e) {
|