aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/MapBox/MapBox.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/MapBox/MapBox.tsx')
-rw-r--r--src/client/views/nodes/MapBox/MapBox.tsx95
1 files changed, 46 insertions, 49 deletions
diff --git a/src/client/views/nodes/MapBox/MapBox.tsx b/src/client/views/nodes/MapBox/MapBox.tsx
index 7269a38f0..654d446a2 100644
--- a/src/client/views/nodes/MapBox/MapBox.tsx
+++ b/src/client/views/nodes/MapBox/MapBox.tsx
@@ -514,22 +514,22 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
// The pin that is selected
@observable
- selectedPin:Doc | undefined;
+ selectedPin: Doc | undefined;
@action
- deselectPin=()=>{
+ deselectPin = () => {
if (this.selectedPin) {
const temp = this.selectedPin;
this._bingMap.current.entities.remove(this.map_docToPinMap.get(temp));
- const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(temp.latitude,temp.longitude));
+ const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(temp.latitude, temp.longitude));
this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(temp as Doc));
this._bingMap.current.entities.push(newpin);
this.map_docToPinMap.set(temp, newpin);
- this.selectedPin=undefined;
+ this.selectedPin = undefined;
// setTimeout(() => this._sidebarRef.current?.makeDocUnfiltered(this._sidebarRef.current.));
}
- }
+ };
/*
* Pushpin onclick
@@ -538,35 +538,31 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
pushpinClicked = (pinDoc: Doc) => {
this.deselectPin();
this.selectedPin = pinDoc;
-
this._bingMap.current.entities.remove(this.map_docToPinMap.get(this.selectedPin));
- const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(this.selectedPin.latitude,this.selectedPin.longitude), {
+ const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(this.selectedPin.latitude, this.selectedPin.longitude), {
color: 'green',
- })
+ });
this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(this.selectedPin as Doc));
this._bingMap.current.entities.push(newpin);
this.map_docToPinMap.set(this.selectedPin, newpin);
- MapAnchorMenu.Instance.Delete = this.deleteSelectedPin
+ MapAnchorMenu.Instance.Delete = this.deleteSelectedPin;
MapAnchorMenu.Instance.Center = this.centerOnSelectedPin;
MapAnchorMenu.Instance.LinkNote = this.createNoteAnnotation;
- const point = this._bingMap.current.tryLocationToPixel(new this.MicrosoftMaps.Location(this.selectedPin.latitude,this.selectedPin.longitude))
+ const point = this._bingMap.current.tryLocationToPixel(new this.MicrosoftMaps.Location(this.selectedPin.latitude, this.selectedPin.longitude));
const x = point.x + this.props.PanelWidth() / 2;
- const y = point.y + this.props.PanelHeight() / 2 +32
+ const y = point.y + this.props.PanelHeight() / 2 + 32;
const cpt = this.props.ScreenToLocalTransform().inverse().transformPoint(x, y);
- MapAnchorMenu.Instance.jumpTo(cpt[0] - this.sidebarWidth()/this.panelWidth()*200, cpt[1], true);
- document.addEventListener('pointerdown', this.tryHideMapAnchorMenu, true)
+ MapAnchorMenu.Instance.jumpTo(cpt[0] - (this.sidebarWidth() / this.panelWidth()) * 200, cpt[1], true);
+ document.addEventListener('pointerdown', this.tryHideMapAnchorMenu, true);
this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'click', this.mapOnClick);
-
// Filter sidebar:
// if sidebar is open, filter.
- if (this.layoutDoc._layout_showSidebar){
-
+ if (this.layoutDoc._layout_showSidebar) {
}
-
};
/**
@@ -621,7 +617,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
this.dataDoc.longitude = location.longitude;
this.dataDoc.mapZoom = this._bingMap.current.getZoom();
// Creates a temporary pin but does not add it to the dataDoc
- this.createPushpin(this.dataDoc.latitude, this.dataDoc.longitude)
+ this.createPushpin(this.dataDoc.latitude, this.dataDoc.longitude);
};
/**
@@ -641,7 +637,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
/// this should use SELECTED pushpin for lat/long if there is a selection, otherwise CENTER
const anchor = Docs.Create.MapanchorDocument({
title: 'MapAnchor:' + this.rootDoc.title,
- config_latitude: NumCast(this.selectedPin?.latitude ?? this.dataDoc.latitude),
+ config_latitude: NumCast(this.selectedPin?.latitude ?? this.dataDoc.latitude),
config_longitude: NumCast(this.selectedPin?.longitude ?? this.dataDoc.longitude),
config_mapZoom: NumCast(this.dataDoc.mapZoom),
config_mapType: StrCast(this.dataDoc.mapType),
@@ -659,7 +655,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
return this.rootDoc;
};
- map_docToPinMap = new Map<Doc, any>();
+ map_docToPinMap = new Map<Doc, any>();
/*
* Input: pin doc
* Adds MicrosoftMaps Pushpin to the map (render)
@@ -677,7 +673,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
this.MicrosoftMaps.Events.addHandler(pushPin, 'click', (e: any) => this.pushpinClicked(pin));
// this.MicrosoftMaps.Events.addHandler(pushPin, 'dblclick', (e: any) => this.pushpinDblClicked(pushPin, pin));
- this.map_docToPinMap.set(pin,pushPin);
+ this.map_docToPinMap.set(pin, pushPin);
};
@observable
@@ -692,31 +688,30 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
// this.allMapPushpins
// this.allMapPushpins.map(pin => this.addPushpin(pin));
// this._bingMap.current.entities.clear();
-
+
this.removeDocument(pinDoc, this.annotationKey);
// this.dataDoc[this.annotationKey]
};
/*
* Removes pushpin from map render
- */
- deletePushpin = (pinDoc:Doc)=>{
+ */
+ deletePushpin = (pinDoc: Doc) => {
this._bingMap.current.entities.remove(this.map_docToPinMap.get(pinDoc));
this.map_docToPinMap.delete(pinDoc);
- this.selectedPin=undefined;
- }
+ this.selectedPin = undefined;
+ };
@action
- deleteSelectedPin = undoable(()=>{
- if (this.selectedPin){
- this.removePushpin(this.selectedPin)
-
+ deleteSelectedPin = undoable(() => {
+ if (this.selectedPin) {
+ this.removePushpin(this.selectedPin);
}
MapAnchorMenu.Instance.fadeOut(true);
- document.removeEventListener('pointerdown', this.tryHideMapAnchorMenu, true)
- }, "delete pin");
+ document.removeEventListener('pointerdown', this.tryHideMapAnchorMenu, true);
+ }, 'delete pin');
- tryHideMapAnchorMenu = (e:PointerEvent) =>{
+ tryHideMapAnchorMenu = (e: PointerEvent) => {
let target = document.elementFromPoint(e.x, e.y);
while (target != null) {
@@ -728,23 +723,20 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
e.stopPropagation();
e.preventDefault();
MapAnchorMenu.Instance.fadeOut(true);
- document.removeEventListener('pointerdown', this.tryHideMapAnchorMenu, true)
-
- }
+ document.removeEventListener('pointerdown', this.tryHideMapAnchorMenu, true);
+ };
// tryhidemenu = e => if( e.parent... == mapanchormenu.top.currrent) do nothing; else hide menu
@action
- centerOnSelectedPin = () =>{
- if (this.selectedPin){
+ centerOnSelectedPin = () => {
+ if (this.selectedPin) {
this.dataDoc.latitude = this.selectedPin.latitude;
this.dataDoc.longitude = this.selectedPin.longitude;
-
-
}
MapAnchorMenu.Instance.fadeOut(true);
- document.removeEventListener('pointerdown', this.tryHideMapAnchorMenu)
- }
+ document.removeEventListener('pointerdown', this.tryHideMapAnchorMenu);
+ };
/**
* View options for bing maps
@@ -809,11 +801,16 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
() => ({ lat: this.rootDoc.latitude, lng: this.rootDoc.longitude, zoom: this.rootDoc.mapZoom, mapType: this.rootDoc.mapType }),
locationObject => {
// if (this._bingMap.current)
- this._bingMap.current?.setView({
- mapTypeId: locationObject.mapType,
- zoom: locationObject.zoom,
- center: new this.MicrosoftMaps.Location(locationObject.lat, locationObject.lng),
- });
+ try {
+ locationObject?.zoom &&
+ this._bingMap.current?.setView({
+ mapTypeId: locationObject.mapType,
+ zoom: locationObject.zoom,
+ center: new this.MicrosoftMaps.Location(locationObject.lat, locationObject.lng),
+ });
+ } catch (e) {
+ console.log(e);
+ }
},
{ fireImmediately: true }
);
@@ -841,8 +838,8 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
while (target != null) {
if (target === this._ref.current) {
const cpt = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY);
- const x = cpt[0] - this.props.PanelWidth() / 2;
- const y = cpt[1] - 32 - this.props.PanelHeight() / 2;
+ const x = cpt[0] - (this.props.PanelWidth() - this.sidebarWidth()) / 2;
+ const y = cpt[1] - 32 /* height of search bar */ - this.props.PanelHeight() / 2;
const location = this._bingMap.current.tryPixelToLocation(new this.MicrosoftMaps.Point(x, y));
this.createPushpin(location.latitude, location.longitude);
break;