-
-
- Helaas, de hoogtekaart is nog niet beschikbaar :(
-
-
- We proberen de hoogtekaart binnenkort toe te voegen. Hou de
- website in de gaten.
-
-
-
+
+
+
+ setViewState((currentViewState) => ({
+ ...currentViewState,
+ longitude,
+ latitude,
+ zoom,
+ }))
+ }
+ showFields={showFields}
+ onToggleFields={() => setShowFields(!showFields)}
+ showElevation={showElevation}
+ onToggleElevation={onToggleElevation}
+ />
+
+ {/* WMS Overview Layer (Zoom < 13) */}
+ {showElevation && (
+
+
+
+ )}
+
+ {/* Render Active Tiles (Zoom >= 13) */}
+ {showElevation &&
+ activeTiles.map((tile) => (
+
+
+
+
+
+
+
+
+ ))}
+
+ {/* Fields Overlay (Saved Fields) */}
+ {fields && (
+
+ {/* Outline Layer - Visual */}
+
+ {/* Fill Layer - Invisible but Clickable/Hoverable */}
+
+
+ )}
+
+
+
= 13 && showElevation}
+ networkStatus={networkStatus}
+ message={
+ showElevation && viewState.zoom < 13
+ ? "Zoom in voor meer detail"
+ : undefined
+ }
+ />
+
+
+
+
+
)
}
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.fields._index.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.fields._index.tsx
index a4c66dc48..8ec49002f 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.fields._index.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.fields._index.tsx
@@ -28,7 +28,7 @@ import { fdm } from "~/lib/fdm.server"
export const meta: MetaFunction = () => {
return [
- { title: `Percelen - Kaart | ${clientConfig.name}` },
+ { title: `Percelen - Atlas | ${clientConfig.name}` },
{
name: "description",
content:
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.tsx
index 752724012..7ca36b82d 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.tsx
@@ -21,7 +21,7 @@ import { fdm } from "~/lib/fdm.server"
// Meta
export const meta: MetaFunction = () => {
return [
- { title: `Kaarten | ${clientConfig.name}` },
+ { title: `Atlas | ${clientConfig.name}` },
{
name: "description",
content: "Bekijk informatie op de kaart.",
diff --git a/fdm-app/package.json b/fdm-app/package.json
index 7d7b9a36b..4529fcfea 100644
--- a/fdm-app/package.json
+++ b/fdm-app/package.json
@@ -15,6 +15,7 @@
},
"dependencies": {
"@date-fns/tz": "^1.4.1",
+ "@geomatico/maplibre-cog-protocol": "github:SvenVw/maplibre-cog-protocol#add-prepare",
"@hookform/resolvers": "^5.2.2",
"@lucide/lab": "^0.1.2",
"@mapbox/geojson-extent": "^1.0.1",
@@ -40,6 +41,7 @@
"@svenvw/fdm-data": "workspace:*",
"@tailwindcss/vite": "^4.1.17",
"@tanstack/react-table": "^8.21.3",
+ "@turf/boolean-intersects": "^7.3.1",
"@turf/centroid": "^7.3.1",
"@turf/turf": "^7.3.1",
"better-auth": "catalog:",
diff --git a/fdm-app/vite.config.ts b/fdm-app/vite.config.ts
index 1df0ef858..39ae0085b 100644
--- a/fdm-app/vite.config.ts
+++ b/fdm-app/vite.config.ts
@@ -31,7 +31,7 @@ export default defineConfig((env) => {
].filter(Boolean),
envPrefix: "PUBLIC_",
ssr: {
- noExternal: ["posthog-js", "posthog-js/react"],
+ noExternal: ["posthog-js", "posthog-js/react", "@geomatico/maplibre-cog-protocol"],
},
build: {
sourcemap: true,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b19455776..617eea9cd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -79,6 +79,9 @@ importers:
'@date-fns/tz':
specifier: ^1.4.1
version: 1.4.1
+ '@geomatico/maplibre-cog-protocol':
+ specifier: github:SvenVw/maplibre-cog-protocol#add-prepare
+ version: https://codeload.github.com/SvenVw/maplibre-cog-protocol/tar.gz/fdb1f2505071f6bd3dc94fe07024d3ddfe826904(maplibre-gl@5.14.0)
'@hookform/resolvers':
specifier: ^5.2.2
version: 5.2.2(react-hook-form@7.68.0(react@19.2.1))
@@ -154,6 +157,9 @@ importers:
'@tanstack/react-table':
specifier: ^8.21.3
version: 8.21.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
+ '@turf/boolean-intersects':
+ specifier: ^7.3.1
+ version: 7.3.1
'@turf/centroid':
specifier: ^7.3.1
version: 7.3.1
@@ -2224,6 +2230,12 @@ packages:
'@floating-ui/utils@0.2.10':
resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
+ '@geomatico/maplibre-cog-protocol@https://codeload.github.com/SvenVw/maplibre-cog-protocol/tar.gz/fdb1f2505071f6bd3dc94fe07024d3ddfe826904':
+ resolution: {tarball: https://codeload.github.com/SvenVw/maplibre-cog-protocol/tar.gz/fdb1f2505071f6bd3dc94fe07024d3ddfe826904}
+ version: 0.8.0
+ peerDependencies:
+ maplibre-gl: ^4.5.0 || ^5.0.0
+
'@gerrit0/mini-shiki@3.19.0':
resolution: {integrity: sha512-ZSlWfLvr8Nl0T4iA3FF/8VH8HivYF82xQts2DY0tJxZd4wtXJ8AA0nmdW9lmO4hlrh3f9xNwEPtOgqETPqKwDA==}
@@ -2359,6 +2371,10 @@ packages:
'@mapbox/point-geometry@1.1.0':
resolution: {integrity: sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==}
+ '@mapbox/sphericalmercator@1.2.0':
+ resolution: {integrity: sha512-ZTOuuwGuMOJN+HEmG/68bSEw15HHaMWmQ5gdTsWdWsjDe56K1kGvLOK6bOSC8gWgIvEO0w6un/2Gvv1q5hJSkQ==}
+ hasBin: true
+
'@mapbox/tiny-sdf@2.0.7':
resolution: {integrity: sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==}
@@ -8857,6 +8873,10 @@ packages:
resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==}
engines: {node: '>=12'}
+ quick-lru@7.3.0:
+ resolution: {integrity: sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g==}
+ engines: {node: '>=18'}
+
quickselect@1.1.1:
resolution: {integrity: sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==}
@@ -11394,7 +11414,7 @@ snapshots:
'@bcoe/v8-coverage@1.0.2': {}
- '@better-auth/core@1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@4.1.13))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0)':
+ '@better-auth/core@1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@3.25.76))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0)':
dependencies:
'@better-auth/utils': 0.3.0
'@better-fetch/fetch': 1.1.18
@@ -11405,9 +11425,9 @@ snapshots:
nanostores: 1.1.0
zod: 4.1.13
- '@better-auth/telemetry@1.4.5(@better-auth/core@1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@4.1.13))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0))':
+ '@better-auth/telemetry@1.4.5(@better-auth/core@1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@3.25.76))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0))':
dependencies:
- '@better-auth/core': 1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@4.1.13))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0)
+ '@better-auth/core': 1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@3.25.76))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0)
'@better-auth/utils': 0.3.0
'@better-fetch/fetch': 1.1.18
@@ -12894,6 +12914,15 @@ snapshots:
'@floating-ui/utils@0.2.10': {}
+ '@geomatico/maplibre-cog-protocol@https://codeload.github.com/SvenVw/maplibre-cog-protocol/tar.gz/fdb1f2505071f6bd3dc94fe07024d3ddfe826904(maplibre-gl@5.14.0)':
+ dependencies:
+ '@mapbox/sphericalmercator': 1.2.0
+ d3-scale: 4.0.2
+ geotiff: 2.1.3
+ maplibre-gl: 5.14.0
+ proj4: 2.20.2
+ quick-lru: 7.3.0
+
'@gerrit0/mini-shiki@3.19.0':
dependencies:
'@shikijs/engine-oniguruma': 3.19.0
@@ -13053,6 +13082,8 @@ snapshots:
'@mapbox/point-geometry@1.1.0': {}
+ '@mapbox/sphericalmercator@1.2.0': {}
+
'@mapbox/tiny-sdf@2.0.7': {}
'@mapbox/unitbezier@0.0.1': {}
@@ -17000,8 +17031,8 @@ snapshots:
better-auth@1.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
- '@better-auth/core': 1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@4.1.13))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0)
- '@better-auth/telemetry': 1.4.5(@better-auth/core@1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@4.1.13))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0))
+ '@better-auth/core': 1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@3.25.76))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0)
+ '@better-auth/telemetry': 1.4.5(@better-auth/core@1.4.5(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.18)(better-call@1.1.4(zod@3.25.76))(jose@6.1.3)(kysely@0.28.8)(nanostores@1.1.0))
'@better-auth/utils': 0.3.0
'@better-fetch/fetch': 1.1.18
'@noble/ciphers': 2.0.1
@@ -20922,6 +20953,8 @@ snapshots:
quick-lru@6.1.2: {}
+ quick-lru@7.3.0: {}
+
quickselect@1.1.1: {}
quickselect@2.0.0: {}