Handleiding

v1.93.0 — hoofdstukgewijs

Nieuw v1.77.4 — Tijdelijke testmodus: alleen HERE-kaart actiefWie: alle gebruikers op /kaart. Wat: de Leaflet/OpenStreetMap-kaartweergave is tijdelijk uitgeschakeld. Er wordt uitsluitend één HERE-kaartinstance geladen; er worden geen OpenStreetMap- of Carto-tegels meer aangevraagd. De admin Leaflet/HERE-toggle-chip in de kaart is verborgen. Bij een HERE-fout wordt er niet meer automatisch teruggeschakeld — je ziet een melding en kan opnieuw proberen. Waar: /kaart. Routing: onveranderd — HERE Truck → ORS-HGV → STOP voor campers, OSRM-car voor niet-campers, expliciete standaard-autoroute na camper-opt-in. Berekende routes verschijnen altijd als polyline op de HERE-kaart; OpenStreetMap opent nooit als kaartvenster. Beperking: Leaflet blijft technisch als headless bounds-helper draaien voor de POI-fetch, zonder tegel-requests en zonder zichtbare kaart. Terugdraaien: beheer via `MAP_PROVIDER_LOCK` in src/services/maps/mapProvider.ts. Placeholder: /handleiding/kaart-here-testmodus.png.

Nieuw v1.77.3 — OpenStreetMap verwijderd uit externe navigatie-apps; interne navigatie primairWie: iedereen. Wat: OpenStreetMap is volledig verwijderd uit de externe-app-keuze (niet alleen visueel — de deep-links bestaan niet meer). De Navigeren-knop in de route-bevestiging opent nu altijd eerst de interne TravelCampGo/HERE-navigatie op de kaart (routepolyline via planRoute()). Wil je een externe app? Tik dan bewust op Andere navigatie-app kiezen… onder de knop. Als er in het verleden OpenStreetMap als standaard was opgeslagen, wordt die voorkeur automatisch gewist en verschijnt bij de volgende externe keuze weer het volledige keuzescherm — er wordt géén andere externe app automatisch geopend. Waar: /kaart → POI/zoekresultaat → Route → onderbalk. Instellingen: Instellingen → Navigatie (voorkeur wissen / telkens vragen). Privacy: ongewijzigd. Placeholder: /handleiding/navigatie-osm-verwijderd.png.

Nieuw v1.77.2 — POI-clustering en categorie-iconen op HERE-kaartWie: iedereen met HERE-provider actief. Wat: dichtbijgelegen POI's worden samengevoegd tot clusters met een cijfer erin. Bij inzoomen splitsen clusters op tot individuele markers met de kleur en emoji van hun categorie (⛽ rood voor tankstation, 🍴 magenta voor restaurant, ☕ bruin voor koffie-stop, 🏕 groen voor camping, 🚐 teal voor camperplaats, 💧 blauw voor water, 🔋 groen voor laadpaal, enz.). Een tik op een cluster zoomt in naar de inhoud. Waar: /kaart → HERE-kaart → filters aanvinken → pan/zoom. Uitgesloten van clustering: gebruikerslocatie, zoekresultaat, bestemming, groepsreis-vrienden, favorieten, laadpunten, geselecteerde POI en routepunten blijven altijd los zichtbaar. Instellingen: geen. Beperkingen: onder zoom 8 zie je vrijwel uitsluitend clusters; individuele markers verschijnen vanaf ± zoom 12. Privacy: ongewijzigd. Placeholder: /handleiding/kaart-here-clustering.png.

Fix v1.77.1 — POI-markers weer zichtbaar op HERE-kaartWie: iedereen met HERE-provider actief. Wat: aangevinkte POI-categorieën (campings, camperplaatsen, tankstations, restaurants, koffiestops, etc.) verschijnen nu direct als markers op de HERE-kaart, ook na pannen of centrumverandering. Waar: /kaart → filterbalk → vink categorieën aan. Achtergrond: de verborgen Leaflet-kaart wordt nu automatisch meegetrokken met het HERE-centrum en op minimaal zoom 12 gehouden, zodat de POI-fetch de juiste viewport gebruikt. Instellingen: geen. Privacy: ongewijzigd. Placeholder: /handleiding/kaart-here-poi-fix.png.

Nieuw v1.77.0 — Fase 9 F2: Tussenstops (waypoints) in de routeWie: iedereen die op /kaart een route berekent. Wat: aan een lopende route-berekening kun je één of meer tussenstops toevoegen. Waar: /kaart → tik POI → knop Navigeer hierheen (routebalk verschijnt onderin) → tik daarna een andere POI aan → onderaan de detailsheet verschijnt de nieuwe amberkleurige knop ➕ Als tussenstop toevoegen. De tussenstop komt in volgorde tussen huidige positie en bestemming te staan; de route herrekent direct. In de routebalk zie je de lijst met tussenstops (naam + × om te verwijderen) en de totalen (afstand + tijd). Camperregel: waypoints lopen door dezelfde strikte keten (HERE Truck → ORS-HGV → STOP). Kan een tussenstop niet camperveilig worden ingepast, dan verschijnt de melding "Deze tussenstop kan niet camperveilig in de route worden verwerkt. Verwijder de tussenstop of kies een andere.". De opt-in-knop Toch standaard autoroute berekenen blijft alleen na expliciete keuze beschikbaar met permanente waarschuwing; nooit label camperroute. Beperkingen: max 8 tussenstops per route. Sluit je de routebalk, dan wordt de tussenstoplijst leeggemaakt (staat niet automatisch in de volgende route). Instellingen: geen; standaard beschikbaar zodra een routebalk actief is. Privacy: tussenstop-coördinaten gaan met de route mee naar de gekozen provider. Placeholder: /handleiding/kaart-tussenstop-toevoegen.png.

Nieuw v1.76.0 — Fase 9 F1: POI-navigatie via planRoute() met strikte camperketenWie: iedereen die op /kaart een POI aantikt en Navigeer hierheen kiest. Wat: elke POI-route loopt nu via de centrale routing-adapter (HERE Truck → ORS HGV → STOP voor camper; HERE-car → OSRM-car voor niet-camper). Waar: POI-popup op /kaart → knop Navigeer hierheen (voorheen Route) → bevestigingssheet onderin. Camperregel: bij camper met afmetingen en zowel HERE Truck als ORS HGV zonder resultaat, komt er géén automatische autoroute — je ziet een rode STOP-melding en Navigeren is uitgeschakeld. Onder die melding verschijnt uitsluitend voor camperprofielen de knop Toch standaard autoroute berekenen. Klik je die, dan wordt éénmalig een OSRM-autoroute berekend met permanente amberkleurige waarschuwing Standaard autoroute — geen rekening gehouden met voertuiggegevens. Deze route krijgt nooit het label camperroute. Een volgende route-aanvraag start altijd opnieuw met de strikte camperketen (de opt-in vervalt automatisch). Instellingen: geen; standaard aan voor alle POI's. Privacy: routecoördinaten gaan alleen naar de gekozen provider (HERE server-side, ORS/OSRM). Voorbeeld: camper 3,20 m hoog tikt op een pont met beperking → STOP-melding, opt-in-knop verschijnt, klik → autoroute met warning-badge zichtbaar. Placeholder: /handleiding/kaart-poi-navigeer.png.

Bekende beperking v1.75.6 — Navigatie centreert op GPS, maar niet betrouwbaar op route-startStatus: open, prioriteit hoog vóór publieke release. Wat: bij Start op /kaart werkt straatzoom 17, maar de kaart centreert niet altijd correct op het actuele startpunt van de gebruiker. Voorlopig uitgesteld; wordt opgelost vóór publieke release. Regressietest: druk Start → binnen ≤5 s moet de kaart op de actuele GPS-positie centreren (HERE én Leaflet) en meebewegen bij verplaatsing. Placeholder: /handleiding/kaart-nav-center-open.png.

Bugfix v1.75.5 — Navigatie zoomt naar straatniveau, volgt GPS en verbergt afleidende markersWie: alle gebruikers die op /kaart een route starten. Wat: bij de eerste geldige GPS-update na Start springt de kaart nu op straatniveau (zoom 17) rond de actuele gebruikerspositie en blijft die zoom vasthouden — fitBounds wordt tijdens actieve navigatie onderdrukt. POI-, laadpunt-, favorieten-, vrienden- en zoekresultaat-markers worden verborgen (HERE én Leaflet); alleen de gebruikersmarker, route-polyline en bestemming blijven zichtbaar. De Filters-knop rechts naast de zoekbalk verdwijnt tijdens navigatie zodat rechts exact vier knoppen overblijven (Locate/Volg / + / − / Kompas). Handmatig verschuiven pauzeert het volgen; tik op de locatieknop hervat het (zoom 17). Waar: /kaart → Route → Start. Instellingen: geen. Placeholder: /handleiding/kaart-nav-zoom.png.

Bugfix v1.75.4 — Kaart volgt actuele locatie tijdens navigatie + opgeschoonde bedieningskolomWie: alle gebruikers tijdens actieve in-app navigatie op /kaart. Wat: de HERE-kaart volgt nu automatisch mee met je GPS-positie in plaats van op het route-overzicht te blijven staan; zoom blijft op straatniveau. Rechts staan tijdens navigatie exact vier knoppen (Volg mijn locatie / Zoom + / Zoom − / Kompas). Als je de kaart handmatig verschuift, kleurt de locatie-knop oranje/pulserend met label Volg mijn locatie. Eén tik hervat de automatische volgmodus. Admin-provider-toggle en de EV-laadpuntenpil zijn tijdens navigatie verborgen. Waar: /kaart → Route → Start → rechterkolom. Instellingen: geen. Placeholder: /handleiding/kaart-nav-follow.png.

Bugfix v1.75.3 — Start-knop activeert navigatie op HERE + Leaflet, routebalk stabiel, HERE-debug verwijderdWie: alle gebruikers die op /kaart een route starten. Wat: de Start-knop in de routebalk vraagt nu locatietoestemming, wacht kort op de eerste GPS-fix en centreert zowel Leaflet als HERE op de actuele positie. Auto-volgen wordt ingeschakeld en de knop wordt vervangen door de badge Navigatie actief (pulserende dot). Bij geweigerde locatie verschijnt een duidelijke Nederlandse melding. De bestaande route/polyline en routebalk blijven ongewijzigd. De HERE ROUTE DEBUG-tegel is verwijderd na bevestigde productietest. Waar: /kaart → Route → Navigeren → routebalk onderin → Start. Instellingen: geen. Placeholder: /handleiding/kaart-nav-start.png.

Bugfix v1.75.2 — HERE-route-polyline daadwerkelijk zichtbaar op de HERE-kaartWie: beheerders die op /kaart HERE als provider gebruiken (admin-preview) en na R3-opt-in een route starten. Voor gewone gebruikers verandert er niets. Wat: de HERE-overlay ondersteunde geen route-polyline; de lijn werd alleen op de onderliggende Leaflet-instantie getekend en dus door de HERE-canvas afgedekt. De provider-adapter (TcgMap) heeft nu een uniforme setRoute()/clearRoute()-API die zowel Leaflet als HERE identiek implementeren. Waar: /kaart → Route → Navigeren; provider-chip HERE (admin). Instellingen: geen. Placeholder: /handleiding/kaart-here-route.png.

Bugfix v1.75.1 — Route-polyline zichtbaar na R3-opt-inWie: gebruikers die op /kaart een route starten en R3-opt-in kiezen ("Toch een standaard autoroute berekenen") of doorgaan zonder volledige campercontrole. Wat: de bevestigingssheet geeft de door planRoute() berekende geometrie nu rechtstreeks door aan de kaart, zodat de zichtbare route-lijn exact overeenkomt met de afstand/reistijd in de routebalk. Er wordt geen tweede route-fetch meer gedaan die tot een lege of niet-passende geometrie kon leiden. De kaart zoomt automatisch naar de volledige route-bounds. Waar: /kaart → Route → Navigeren (in-app). Instellingen: geen. Placeholder: /handleiding/kaart-route-polyline.png.

HERE-migratie fase 7 afgerond (v1.74.1) — productietest bevestigd (documentatie-only)Wie: alleen beheerders zien de admin-preview; voor gewone gebruikers is er niets veranderd. Wat: het admin-testblok op /admin/here-test is handmatig op productie doorlopen: (a) R1 camper mét afmetingen → HERE Truck wint met vehicleDataApplied=true en toont de HERE-notice "Violated Vehicle restriction" met Nederlandse mapping in het resultaatvak; (b) R3 camper zonder afmetingen → dialoog CamperGegevensVereist blijft zichtbaar tot de gebruiker zelf sluit, naar voertuigbeheer navigeert of expliciet kiest voor de standaard autoroute (geen auto-close meer); (c) R3 opt-in "Toch een standaard autoroute" → OSRM-car resultaat met vehicleDataApplied=false en de permanente waarschuwing "Standaard autoroute — geen rekening gehouden met voertuiggegevens". Het blok "Gebruikt voor deze test" toont voertuig-ID, naam/type en per afmeting (H/B/L/gewicht) of de waarde uit voertuigbeheer of uit de fallback komt. Waar: /admin → tab HERE-test. Status: fase 7 admin-preview definitief afgerond; wiring van de zichtbare routeknop naar planRoute() blijft een aparte vervolgstap na expliciet akkoord. Placeholder: /handleiding/admin-fase7-adapter.png.

HERE-migratie fase 7 (v1.74.0) — camper- en truck-routing met camperketen R1–R3 (admin-only preview)Wie: alleen beheerders zien deze functionaliteit in de admin-testmodus. Voor gewone gebruikers is er niets veranderd: de bestaande routeknop op /kaart, /reizen/nieuw en de konvooinavigatie blijven exact als in v1.73.4. Wat: nieuwe centrale routing-adapter (src/lib/routing-adapter.ts) met één ingang planRoute() die per aanvraag de juiste provider kiest en de camperregels afdwingt — R1: camperketen = HERE Truck → ORS-HGV → STOP (nooit OSRM-car zolang afmetingen/gewicht/aslast actief zijn), R2: één duidelijke NL-melding "Geen route gevonden die rekening houdt met de ingevoerde voertuiggegevens" als beide camperproviders falen, R3: zonder hoogte, breedte, lengte en gewicht opent de dialoog CamperGegevensVereist met knoppen voor voertuigbeheer of een expliciete opt-in voor een standaard autoroute mét permanente waarschuwing. Badgeteksten gebruiken nooit meer "veilig" of "gecontroleerd" — altijd "rekening gehouden met de ingevoerde voertuiggegevens" of "standaard autoroute — geen rekening gehouden met voertuiggegevens", met de vaste disclaimer dat verkeersborden en lokale beperkingen altijd leidend zijn en de bestuurder verantwoordelijk blijft. Server-hardening: HERE Routing kreeg een rate-limiter (10/min, 300/dag per gehashte identiteit), circuit-breaker (6 fouten in 60 s → 90 s cooldown) en config-kill-switch (ROUTING_HERE_ENABLED) — zelfde patroon als de zoekservice in fase 6, geen ruwe IP-opslag. Waar: /admin → tab HERE-test, blok "Fase 7 — Routing-adapter (camperketen R1–R3)" met drie testknoppen (camper mét afmetingen, camper zónder afmetingen → R3, auto) die de gehele fallback-keten (chainAttempts[]) tonen. Instellingen: geen nieuwe UI voor eindgebruikers; nieuwe optionele secrets voor beheerders (ROUTING_HERE_ENABLED, ROUTING_HERE_RPM/RPD, ROUTING_BREAKER_ERRORS/WINDOW_SEC/COOLDOWN_SEC). Status: adapter is klaar en admin-getest; wiring naar de zichtbare routeknop komt in een aparte vervolgstap na jouw akkoord. Placeholder: /handleiding/admin-fase7-adapter.png.

HERE-migratie fase 6 Deel B (v1.73.0) — client-adapter voor adres-/plaatszoekenWie: alle gebruikers die de zoekbalk op /kaart of het venster Volgende stop instellen gebruiken. Wat: één gedeelde zoek-adapter (src/lib/search-adapter.ts) kiest automatisch de provider: HERE (server-fn hereSearch) wanneer de beheerdersvlag tcg_use_here_maps aan staat, anders klassieke Nominatim (bestaand gedrag). Bij HERE-uitval (config_missing / upstream_error / timeout / no_results) valt de adapter transparant terug op Nominatim; rate_limited en unauthorized worden bewust niet gemaskeerd en tonen een Nederlandse melding. Waar: /kaart — zoekbalk bovenin (suggesties + Enter-zoek); Volgende stop instellen-sheet — zoekveld met resultatenlijst en satelliet-controle. Consent: near-coördinaten worden alleen naar de server gestuurd wanneer expliciete toestemming is gegeven (standaard uit). Instellingen: geen nieuwe knoppen; alleen beheerders kunnen HERE aanzetten via localStorage.setItem("tcg_use_here_maps","1") (later een zichtbare toggle). Privacy: geen wijziging aan opslag — zoekopdrachten gaan direct naar HERE (server) of Nominatim (browser); geen ruwe IP-opslag server-side. Placeholder: /handleiding/zoekbalk-fallback.png.

HERE-migratie fase 6 Deel A (v1.72.0) — server-side zoekfundament (nog geen UI-wijziging)Wie: onzichtbaar voor eindgebruikers; van belang voor beheerders en support. Wat: nieuwe server-side laag rond adres/plaats-zoeken met (1) een kill-switch per provider via secrets (SEARCH_HERE_ENABLED, SEARCH_FALLBACK_ENABLED), (2) een token-bucket rate-limiter per gehashte identiteit (SHA-256 van salt+IP+UA, dus géén ruwe IP-opslag; default 20/min, 500/dag voor HERE), (3) een circuit-breaker per provider (8 fouten in 60 s → 90 s pauze), (4) een Nominatim-fallback die standaard uit staat, met bij inschakeling verplichte User-Agent info@travelcampgo.com, exact 1 gelijktijdig verzoek en resultaatcache van 6 uur, en (5) een consent-gate: nearLat/nearLng gaan alleen mee wanneer de client expliciet toestemming meegeeft. Waar: geen zichtbare wijzigingen in de UI in deze release. De bestaande zoekbalk op /kaart blijft werken zoals voorheen; als de client (nog) geen consent meestuurt, wordt zonder near-coördinaten gezocht (Europa-bbox) — dat is een strengere default, geen regressie. Kill-switch-latentie: het aanpassen van een secret werkt pas actief na republish/restart van de server (seconden tot minuten), dus geen instant kill. Instellingen (secrets, admin-only): SEARCH_HERE_ENABLED, SEARCH_FALLBACK_ENABLED, SEARCH_HERE_RPM/RPD, SEARCH_NOMINATIM_RPM/RPD, SEARCH_BREAKER_ERRORS/WINDOW_SEC/COOLDOWN_SEC, SEARCH_NOMINATIM_CACHE_TTL_SEC, SEARCH_CONTACT_EMAIL, SEARCH_ID_SALT. Privacy: geen IP-opslag; cache-sleutels zijn hashes; coördinaten in logs afgerond op 2 decimalen (~1.1 km). Vervolg (Deel B, v1.73.0): client-side adapter, UI-integratie met Nederlandse foutmeldingen, retry-timer, opt-in "gebruik HERE" schakelaar voor testers, en handmatige testmatrix. Placeholder: /handleiding/kaart-zoekbalk.png.

HERE-migratie fase 5.1 (v1.71.3) — Leaflet-rollback definitief hersteldWie: alle gebruikers van /kaart (zowel Leaflet-default als admins met HERE-toggle). Wat: root-cause opgelost van de witte Leaflet-kaart na HERE → Leaflet én na harde refresh in fullscreen. De wrapper-div rondom MapView (nodig voor de HERE-overlay) miste een expliciete hoogte, waardoor Leaflet's h-full in fullscreen 0 px kreeg — tegels/panes/markers bleven onzichtbaar. HERE-overlay bleef werken omdat die absolute inset-0 gebruikt. Fix: wrapper krijgt h-full w-full in fullscreen; invisible-class vervangen door expliciete inline visibility:hidden met aria-hidden. Bestaande invalidateSize()-lifecycle na provider-switch blijft actief. Waar: /kaart. Verificatie: harde refresh + Leaflet ↔ HERE (3 cycli) → tiles, markers en huidige locatie steeds direct zichtbaar; geen witte kaart, geen dubbele instance, geen console-errors.

HERE-migratie fase 5.1 (v1.71.0, geen versiebump) — daadwerkelijke integratie op /kaart voor adminsWie: uitsluitend beheerders met de rol admin of owner. Gewone gebruikers zien géén provider-chip en blijven altijd op Leaflet. Wat: op de bestaande route /kaart is de provider-abstractie (TcgMap) nu daadwerkelijk geïntegreerd. In schermvullende modus verschijnt rechtsboven een kleine chip Kaart (admin) met twee knoppen: Leaflet (default) en HERE. Bij keuze HERE mount een overlay (HereKaartOverlay) bovenop de gemounte-maar-verborgen Leaflet-instantie en rendert dezelfde zichtbare lagen via de adapter: huidige positie, gefilterde POI's (met kleuren uit de categorieën), OpenChargeMap-laadpunten (bij toggle Laadpunten), favorieten, vrienden/konvooi-deelnemers (bij toggle Vrienden), zoekresultaat en geselecteerde marker. Klik op een POI-marker opent dezelfde POI-sheet als op Leaflet. Alle popups gebruiken PopupSpec + renderPopup (strikte escape, href-allowlist http/https/mailto/tel). Waar: /kaart in schermvullende modus → chip rechtsboven (alleen zichtbaar voor beheerders). De losse admin-preview /admin/here-kaart blijft beschikbaar als testroute. Fallback: bij not_admin, config_missing, sdk-load-failed, here-key-missing of runtime-fout schakelt /kaart direct terug op Leaflet met toast + tekstje bij de chip. Leaflet blijft altijd gemount — terugschakelen is instant en state-behoudend. Privacy: HERE JS-key blijft server-side achter admin-gate en uitsluitend in-memory in de adapter-closure. Nooit in localStorage/sessionStorage, nooit gelogd, nooit in de client-bundle. Buiten scope: routeplanner, /navigatie, konvooinavigatie, mini-kaarten, DB, HERE Search en HERE Routing. Status: v1.71.0 blijft actief totdat de volledige testmatrix (docs/here-phase-5-report.md) handmatig groen is. Placeholder: /handleiding/kaart-admin-here-chip.png.

HERE-migratie fase 5 (v1.71.0) — admin-only HERE-kaartpreview via provider-abstractieWie: uitsluitend beheerders met de rol admin of owner. Voor gewone gebruikers verandert er niets: /kaart blijft 1-op-1 op Leaflet met alle bestaande markers, filters, camperprofiel, konvooi-, favoriet- en routingfunctionaliteit. Wat: nieuwe provider-abstractielaag (TcgMap) met dunne adapters voor Leaflet en HERE, plus een veilige popup-serializer (PopupSpec + renderPopup) die strikt escaped en alleen `http/https/mailto/tel` hrefs toelaat — ruwe HTML uit externe bronnen kan niet in de DOM belanden. Waar: nieuwe route /admin/here-kaart. Provider-toggle Leaflet ↔ HERE bovenin; POI-markers worden via fetchPOIsInBounds geladen en op beide providers identiek weergegeven. Bij not_admin, config_missing, SDK-laadfout of HERE-runtime-fout schakelt de UI automatisch terug op Leaflet en toont de reden. Privacy: de HERE JS-sleutel wordt alleen aan geverifieerde admins geleverd en uitsluitend in-memory in de adapter-closure bewaard — nooit in localStorage/sessionStorage/logs. Status: fase 5 gecontroleerd opgeleverd; volledige adapter-migratie van de bestaande /kaart-code (routing, konvooi-live, laadpunten-cluster, favorieten-overlay) is bewust een aparte vervolgstap. Placeholder: /handleiding/admin-here-kaart.png.

HERE-migratie fase 4 (v1.70.0, runtime-geverifieerd v1.70.2) — HERE-kaartweergave voor beheerders/testersWie: uitsluitend beheerders met de rol admin. Voor gewone gebruikers verandert er niets. Wat: op /admin → tab "HERE-test" kan de beheerder in het blok Kaartweergave schakelen tussen Leaflet (default) en HERE, en met de knop Unmount/Mount het opruimen testen. Bij ontbrekende toestemming, ontbrekende sleutel of geblokkeerd domein valt de UI automatisch terug op Leaflet. Waar: /admin/here-test. Privacy: de HERE JavaScript-sleutel wordt alleen op verzoek aan een geverifieerde admin geleverd, uitsluitend in het geheugen bewaard tijdens de kaart-mount, en nooit in localStorage/sessionStorage of logs geplaatst. HERE Trusted Domains vormen de tweede beveiligingslaag. Verificatie v1.70.2: handmatige runtime-tests op productie bevestigd — HERE laadt, Unmount ruimt schoon op, opnieuw Mount werkt, terugschakelen naar Leaflet werkt zonder foutmelding. Status: fase 4 volledig gereed; feature-vlag tcg_use_here_maps blijft standaard uit. Placeholder: /handleiding/admin-here-kaart.png.

HERE-migratie fase 3 (v1.69.0) — veilige server-side Search & Routing (admin-only)Wie: alleen beheerders (owner/admin). Voor gewone gebruikers is er niets veranderd: de kaart, POI's, navigatie, camperzwaaien, favorieten en abonnementen werken exact als voorheen. Wat: de HERE-API-sleutel staat server-side veilig opgeslagen en wordt uitsluitend gebruikt binnen twee nieuwe server-functies (`hereSearch`, `hereRoute`). De sleutel verlaat nooit de server en verschijnt niet in de browser, netwerk-verkeer of logs. Camperrouting maakt gebruik van HERE `transportMode=truck` uitsluitend met gevalideerde hoogte, breedte, lengte en gewicht — bij ontbrekende afmetingen valt de aanroep automatisch terug op auto-modus. Waar: /admin → tab "HERE-test" (alleen zichtbaar voor beheerders). Elke test toont responstijd, foutstatus en — voor camperroute — welke afmetingen daadwerkelijk aan HERE zijn meegegeven. Privacy: er wordt geen gebruikerslocatie gedeeld met HERE; de admin-tests gebruiken vaste voorbeeldcoördinaten. Status: HERE-kaart is nog NIET geactiveerd voor eindgebruikers — de feature-vlag `tcg_use_here_maps` blijft standaard uit. Placeholder: /handleiding/admin-here-test.png.

HERE-migratie fase 2.2 (v1.68.0) — centrale Leaflet-factory en GPS-singleton geverifieerdWie: geen zichtbare wijziging voor gebruikers; ontwikkelaarslaag. Wat: alle 13 kaart-instanties (hoofdkaart, navigatie en 10 mini-kaart sheets/previews zoals satelliet-, favoriet-, bestemming-, offline- en vriend-kaarten) initialiseren Leaflet nu via één centrale factory `src/services/maps/leaflet.ts`. Projectbreed **0** losse `L.map()`-aanroepen buiten deze factory. De gedeelde GPS-bron (`useCurrentLocation`) is voorzien van runtime-instrumentatie (`window.__tcgGpsStats`, console-log `[GPS] singleton start/stop`) en met Playwright is bevestigd dat er tijdens gebruik **precies één** fysieke `watchPosition` actief is over `/kaart`, `/plekken`, `/offline-kaarten`, `/favorieten` en `/profiel`. Waar zichtbaar: nergens in de UI — kaart, navigatie, POI's, zoeken, routing, camperprofiel, favorieten en konvooi werken exact als voorheen.

HERE-migratie fase 2.1 (v1.67.0) — kaart-wrapper en gedeelde locatiebronWie: geen zichtbare wijziging voor gebruikers; ontwikkelaarslaag. Wat: nieuwe wrapper `src/components/map/TravelCampGoMap.tsx` met dezelfde API als `MapView`. Als de vlag `tcg_use_here_maps` uit staat (default) blijft alles Leaflet; staat de vlag aan, dan verschijnt op de reeds gemigreerde plekken (`/kaart`, `/navigatie/:id`) tijdelijk een HERE-placeholder tot fase 4. Verder is `useGPS()` een `@deprecated` adapter geworden bovenop `useCurrentLocation()`, en `KonvooiLiveBroadcaster` gebruikt geen eigen GPS-watcher meer. De publieke provider-ID heet nu `"current" | "here"`. Waar zichtbaar: nergens — kaart, navigatie, POI's, zoeken, routing, camperprofiel, favorieten en konvooi werken exact als voorheen. Vervolg: fase 3 (HERE secrets + server-fn skeleton) start pas na jouw akkoord én de HERE-API-sleutel.

HERE-migratie fase 2 (v1.66.0) — technische voorbereidingWie: geen zichtbare wijziging voor gebruikers; dit is een ontwikkelaarslaag. Wat: er is een provideronafhankelijke abstractielaag toegevoegd (`src/services/maps/*`) en één gedeelde locatiebron (`src/hooks/useCurrentLocation.ts`) die op termijn de 10 losse GPS-watchers vervangt en `speed`/`heading` levert. Er is een feature-vlag `tcg_use_here_maps` (default uit) — HERE zelf is nog nergens geactiveerd. Waar zichtbaar: nergens in de UI; kaart, navigatie, POI's, zoeken, routing en camperprofiel werken exact als voorheen. Vervolg: fase 3 (secrets + edge-functions skeleton) start pas na expliciete goedkeuring en aanleveren van de HERE-API-sleutel.

Betaling werkt end-to-end (v1.36.0)Wie: elke ingelogde gebruiker. Wat: je kunt nu Pro of Family kopen via Paddle. Kies op /abonnement tussen Introductieprijs (Pro € 3,99/mnd · € 39,99/jr, Family € 59,99/jr) en Reguliere prijs (Pro € 4,99/mnd · € 49,99/jr, Family € 79,99/jr). Na afrekenen ververst je tier automatisch. Opzegging toont een gele infostrip met einddatum; verlopen abonnementen vallen automatisch terug op Lite. Testkaart in preview: 4242 4242 4242 4242, elke toekomstige datum, CVC 123. Zie hoofdstuk 19 voor details.

Juridische pagina's — nieuwe publieke routes voor Paddle-goedkeuring: /algemene-voorwaarden, /terugbetaling, /privacy. Links onderaan elke pagina in de footer. Actie voor beheerder: vul je juridische naam / KVK in op /algemene-voorwaarden en /privacy voordat je live gaat.

Beveiliging — HIBP-check is aangezet: bekend gelekte wachtwoorden worden geweigerd bij registratie en wijzigen. [Screenshot: /abonnement met prijstoggle en cancel-strip]

TravelCampGo v1.93.0