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) <noreply@anthropic.com>
This commit is contained in:
parent
246806cf1a
commit
14a2bd82fc
1 changed files with 7 additions and 3 deletions
|
|
@ -380,14 +380,18 @@ export function PlannerMap({ yjs, onRouteRequest, highlightPosition, highlighted
|
||||||
|
|
||||||
const insertWaypointAtSegment = useCallback(
|
const insertWaypointAtSegment = useCallback(
|
||||||
(segmentIndex: number, lat: number, lon: number) => {
|
(segmentIndex: number, lat: number, lon: number) => {
|
||||||
|
const snap = snapToPoi(lat, lon, poiState.pois);
|
||||||
yjs.doc.transact(() => {
|
yjs.doc.transact(() => {
|
||||||
const yMap = new Y.Map();
|
const yMap = new Y.Map();
|
||||||
yMap.set("lat", lat);
|
yMap.set("lat", snap.lat);
|
||||||
yMap.set("lon", lon);
|
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]);
|
yjs.waypoints.insert(segmentIndex + 1, [yMap]);
|
||||||
}, "local");
|
}, "local");
|
||||||
},
|
},
|
||||||
[yjs.doc, yjs.waypoints],
|
[yjs.doc, yjs.waypoints, poiState.pois],
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleRouteInsert = useCallback(
|
const handleRouteInsert = useCallback(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue