From 14f13987693ff3733bf6167fbfc3c70f1b6864bf Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Thu, 24 Oct 2024 12:14:50 +0800 Subject: feat: add menu items for setting marker type --- src/MenuItem.mjs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/MenuItem.mjs') diff --git a/src/MenuItem.mjs b/src/MenuItem.mjs index 74b01d5..874c829 100644 --- a/src/MenuItem.mjs +++ b/src/MenuItem.mjs @@ -1,4 +1,5 @@ import { shiftByWindow } from './utils.mjs' +import * as utils from './dumbyUtils.mjs' /** * @typedef {Object} RefLink @@ -426,3 +427,38 @@ export const addRefLink = (cm, refLinks) => }) }), }) + +/** + * setGeoLinkTypeItem. + * + * @param {HTMLAnchorElement} link + * @param {String} text + * @param {String} type + */ +export const setGeoLinkTypeItem = ({ link, text, type }) => { + const params = new URLSearchParams(link.search) + return new Item({ + text, + onclick: () => { + params.set('type', type) + link.search = params + utils.removeLeaderLines(link) + utils.getMarkersFromMaps(link) + .forEach(marker => marker.remove()) + utils.getMarkersFromMaps(link) + }, + }) +} + +/** + * setGeoLinkType. + * + * @param {HTMLAnchorElement} link + */ +export const setGeoLinkType = (link) => new Folder({ + text: 'Marker Type', + items: [ + setGeoLinkTypeItem({ link, text: 'Pin', type: 'pin' }), + setGeoLinkTypeItem({ link, text: 'Circle', type: 'circle' }), + ], +}) -- cgit v1.2.3-70-g09d2