improved OSM Element selection
This commit is contained in:
@@ -11,7 +11,14 @@ import { Popup, useMap } from "react-leaflet";
|
||||
|
||||
export const ContextMenu = () => {
|
||||
const map = useMap();
|
||||
const { contextMenu, setContextMenu, setSearchElements, setSearchPopup } = useMapStore();
|
||||
const {
|
||||
contextMenu,
|
||||
searchElements,
|
||||
setContextMenu,
|
||||
setSearchElements,
|
||||
setSearchPopup,
|
||||
toggleSearchElementSelection,
|
||||
} = useMapStore();
|
||||
const { missionFormValues, setMissionFormValues, setOpen, isOpen } = usePannelStore(
|
||||
(state) => state,
|
||||
);
|
||||
@@ -64,7 +71,9 @@ export const ContextMenu = () => {
|
||||
const parsed: OSMWay[] = data.elements
|
||||
.filter((e: any) => e.type === "way")
|
||||
.map((e: any) => {
|
||||
const elementInMap = searchElements.find((el) => el.wayID === e.id);
|
||||
return {
|
||||
isSelected: elementInMap?.isSelected ?? false,
|
||||
wayID: e.id,
|
||||
nodes: e.nodes.map((nodeId: string) => {
|
||||
const node = data.elements.find((element: any) => element.id === nodeId);
|
||||
@@ -125,12 +134,15 @@ export const ContextMenu = () => {
|
||||
nodeWay.push([node.lat, node.lon]),
|
||||
);
|
||||
|
||||
if (closestToContext) {
|
||||
toggleSearchElementSelection(closestToContext.wayID);
|
||||
}
|
||||
|
||||
setMissionFormValues({
|
||||
...parsed,
|
||||
state: "draft",
|
||||
addressLat: contextMenu.lat,
|
||||
addressLng: contextMenu.lng,
|
||||
addressOSMways: [closestToContext],
|
||||
});
|
||||
|
||||
map.setView([contextMenu.lat, contextMenu.lng], 18, {
|
||||
|
||||
Reference in New Issue
Block a user