diff --git a/src/map-renderer.ts b/src/map-renderer.ts index 16b03fd..c4f37fb 100644 --- a/src/map-renderer.ts +++ b/src/map-renderer.ts @@ -67,6 +67,7 @@ export interface MapRendererOptions { autoCenter?: boolean; onMarkerClick?: (point: MapPoint, event: MjolnirEvent) => void; onTilesLoaded?: () => void; + onSetMapCenter?: (lat: number, lng: number) => void; }; } @@ -735,6 +736,26 @@ export function createMapRenderer(config: MapRendererOptions): Deck { + item + .setTitle('Set as map center') + .setIcon('map-pin') + .onClick(() => { + options.onSetMapCenter?.(lat, lng); + }); + }); + } + + menu.addItem((item) => { + item + .setTitle('Open in web') + .setIcon('globe') + .onClick(() => { + window.open(`https://www.google.com/maps?q=${lat.toFixed(6)},${lng.toFixed(6)}`, '_blank'); + }); + }); + menu.showAtMouseEvent(e); } }); diff --git a/src/views/map-bases-view.ts b/src/views/map-bases-view.ts index 386c7e5..7d5409b 100644 --- a/src/views/map-bases-view.ts +++ b/src/views/map-bases-view.ts @@ -287,6 +287,9 @@ export class MapBasesView extends BasesView { onTilesLoaded: () => { tilesLoaded = true; hideOverlay(); + }, + onSetMapCenter: (lat: number, lng: number) => { + this.config.set('center', `${lat}, ${lng}`); } } });