diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-27 23:48:19 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-28 12:24:12 +0800 |
commit | 069b1b74bbc369b3dddcd6fb2d64d77381ba0b17 (patch) | |
tree | 35a0cbdd2e0ee75dc0a452e9f6ab5a8cb4a78845 /src/dumbymap.mjs | |
parent | ed1a8d2e4eb77c2e33d5d44118f13331dac43899 (diff) |
feat: add menu item for add marker
* remove code about adding reference link in editor.mjs
* TODO: use local storage to access reference about marker
Diffstat (limited to 'src/dumbymap.mjs')
-rw-r--r-- | src/dumbymap.mjs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 718758b..0d88f80 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
@@ -543,10 +543,11 @@ export const generateMaps = (container, { | |||
543 | menu.remove() | 543 | menu.remove() |
544 | } | 544 | } |
545 | container.appendChild(menu) | 545 | container.appendChild(menu) |
546 | const containerRect = container.getBoundingClientRect() | ||
546 | new window.MutationObserver(() => { | 547 | new window.MutationObserver(() => { |
547 | menu.style.display = 'block' | 548 | menu.style.display = 'block' |
548 | menu.style.left = (e.layerX + 10) + 'px' | 549 | menu.style.left = (e.pageX - containerRect.left + 10) + 'px' |
549 | menu.style.top = (e.layerY + 5) + 'px' | 550 | menu.style.top = (e.pageY - containerRect.top + 5) + 'px' |
550 | clearTimeout(menu.timer) | 551 | clearTimeout(menu.timer) |
551 | }).observe(menu, { childList: true }) | 552 | }).observe(menu, { childList: true }) |
552 | menu.timer = setTimeout(() => menu.remove(), 100) | 553 | menu.timer = setTimeout(() => menu.remove(), 100) |
@@ -575,13 +576,22 @@ export const generateMaps = (container, { | |||
575 | } | 576 | } |
576 | 577 | ||
577 | // Menu Items for map | 578 | // Menu Items for map |
578 | if (map?.renderer?.results) { | 579 | if (map?.dataset?.render === 'fulfilled') { |
579 | const rect = map.getBoundingClientRect() | 580 | const rect = map.getBoundingClientRect() |
580 | const [x, y] = [e.x - rect.left, e.y - rect.top] | 581 | const [x, y] = [e.x - rect.left, e.y - rect.top] |
581 | menu.appendChild(menuItem.toggleMapFocus(map)) | 582 | menu.appendChild(menuItem.toggleMapFocus(map)) |
582 | menu.appendChild(menuItem.renderResults(dumbymap, map)) | 583 | menu.appendChild(menuItem.renderResults(dumbymap, map)) |
583 | menu.appendChild(menuItem.getCoordinatesByPixels(map, [x, y])) | 584 | menu.appendChild(new menuItem.Folder({ |
584 | menu.appendChild(menuItem.restoreCamera(map)) | 585 | text: 'Actions', |
586 | items: [ | ||
587 | menuItem.getCoordinatesByPixels(map, [x, y]), | ||
588 | menuItem.restoreCamera(map), | ||
589 | menuItem.addMarker({ | ||
590 | point: [e.pageX, e.pageY], | ||
591 | map, | ||
592 | }), | ||
593 | ], | ||
594 | })) | ||
585 | } else { | 595 | } else { |
586 | // Toggle block focus | 596 | // Toggle block focus |
587 | if (block) { | 597 | if (block) { |