From 14a2bd82fcb539a8d85a5b7e5d9f4d6b14dfcf27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ullrich=20Sch=C3=A4fer?= Date: Sat, 11 Apr 2026 02:06:40 +0200 Subject: [PATCH] Snap route-inserted waypoints to nearby POIs When clicking on the route to insert a waypoint, the new point now snaps to a nearby POI (within 50m) just like click-to-add and drag. Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/planner/app/components/PlannerMap.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/planner/app/components/PlannerMap.tsx b/apps/planner/app/components/PlannerMap.tsx index f79f359..cc9789c 100644 --- a/apps/planner/app/components/PlannerMap.tsx +++ b/apps/planner/app/components/PlannerMap.tsx @@ -380,14 +380,18 @@ export function PlannerMap({ yjs, onRouteRequest, highlightPosition, highlighted const insertWaypointAtSegment = useCallback( (segmentIndex: number, lat: number, lon: number) => { + const snap = snapToPoi(lat, lon, poiState.pois); yjs.doc.transact(() => { const yMap = new Y.Map(); - yMap.set("lat", lat); - yMap.set("lon", lon); + yMap.set("lat", snap.lat); + yMap.set("lon", snap.snapped ? snap.lon : lon); + if (snap.name) yMap.set("name", snap.name); + if (snap.osmId) yMap.set("osmId", snap.osmId); + if (snap.poiTags) yMap.set("poiTags", snap.poiTags); yjs.waypoints.insert(segmentIndex + 1, [yMap]); }, "local"); }, - [yjs.doc, yjs.waypoints], + [yjs.doc, yjs.waypoints, poiState.pois], ); const handleRouteInsert = useCallback(