aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric <ericmabr@gmail.com>2023-07-31 12:58:06 -0400
committerEric <ericmabr@gmail.com>2023-07-31 12:58:06 -0400
commitcaa2e09edb9c1db0af571013d006179bdc84f755 (patch)
tree1967a9f7677a1c22c911da9596478308fe9fcd42 /src
parentb04306ce09bfd994c0535d77bae9c778dab97977 (diff)
All mapType stuff and constructor is done
Diffstat (limited to 'src')
-rw-r--r--src/client/documents/Documents.ts3
-rw-r--r--src/client/views/nodes/MapBox/MapBox.tsx70
-rw-r--r--src/client/views/nodes/trails/PresBox.tsx9
3 files changed, 64 insertions, 18 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 5cced6d24..ca62028c1 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -221,6 +221,7 @@ export class DocumentOptions {
openFactoryAsDelegate?: boolean; //
lat?: NUMt = new NumInfo('latitude of a mapping view');
lng?: NUMt = new NumInfo('longitude of a mapping view');
+ zoom?: NUMt = new NumInfo('zoom of a mapping view');
infoWindowOpen?: boolean;
author?: string;
_layout_fieldKey?: string;
@@ -289,6 +290,8 @@ export class DocumentOptions {
presPanY?: number; // panY saved as a view spec
presLat?: NUMt = new NumInfo('latitude of a map'); // latitude of a map
presLong?: NUMt = new NumInfo('longitude of map'); // longitude of map
+ presZoom?: NUMt = new NumInfo('zoom of map'); // zoom of map
+ presMapType?:string;
presViewScale?: number; // viewScale saved as a view Spec
presTransition?: number; //the time taken for the transition TO a document
presDuration?: number; //the duration of the slide in presentation view
diff --git a/src/client/views/nodes/MapBox/MapBox.tsx b/src/client/views/nodes/MapBox/MapBox.tsx
index 3c8e6203a..ad534f5f2 100644
--- a/src/client/views/nodes/MapBox/MapBox.tsx
+++ b/src/client/views/nodes/MapBox/MapBox.tsx
@@ -132,15 +132,21 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
private _disposer: {[key:string]:IReactionDisposer} = {}
componentDidMount() {
this.props.setContentView?.(this);
- this._disposer.location = reaction(() => ({lat:this.rootDoc.latitude, lng:this.rootDoc.longitude}),
+ this._disposer.location = reaction(() => ({lat:this.rootDoc.latitude, lng:this.rootDoc.longitude, zoom:this.rootDoc.zoom,mapType:this.rootDoc.mapType}),
(locationObject) => {
- //TODO: SAVE ZOOM? VIEW STYLE?
this._bingMap.current.setView({
+ mapTypeId: locationObject.mapType,
+ zoom:locationObject.zoom,
center: new this.MicrosoftMaps.Location(locationObject.lat, locationObject.lng),
});
+ // this._bingMap.current.setZoom(locationObject.zoom);
+
+
}, {fireImmediately: true});
+
+
}
componentWillUnmount(): void {
@@ -678,7 +684,18 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
updateLayout = () => {
this.dataDoc.latitude = this._bingMap.current.getCenter().latitude;
this.dataDoc.longitude = this._bingMap.current.getCenter().longitude;
+ this.dataDoc.zoom = this._bingMap.current.getZoom();
+ // this.dataDoc.mapType = new this.MicrosoftMaps.MapTypeId();
};
+ /*
+ * Updates maptype
+ */
+ @action
+ updateMapType = () => {
+ this.dataDoc.mapType = this._bingMap.current.getMapTypeId();
+
+ };
+
searched_pin: any;
/*
@@ -691,13 +708,18 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
const location = await this.bingGeocode(this._bingMap, this.bingSearchBarContents);
this.dataDoc.latitude = location.latitude;
this.dataDoc.longitude = location.longitude;
+ this.dataDoc.zoom = this._bingMap.current.getZoom();
+ // this.dataDoc.mapType = this._bingMap.current.getMapTypeId();
+ // this.bingSearchBarContents=location.name;
+
// Centers on the searched location
- this._bingMap.current.setView({
- center: new this.MicrosoftMaps.Location(this.dataDoc.latitude, this.dataDoc.longitude),
- });
- this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'click', this.mapOnClick);
- this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'viewchangeend', this.updateLayout);
+ this._bingMap.current.panTo(new this.MicrosoftMaps.Location(this.dataDoc.latitude, this.dataDoc.longitude));
+ // this._bingMap.current.setView({
+ // center: new this.MicrosoftMaps.Location(this.dataDoc.latitude, this.dataDoc.longitude),
+ // });
+
+
// Creates a temporary pin but does not add it to the dataDoc
@@ -714,12 +736,12 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
/**
* Adds all pushpins in dataDoc onto the map (render) - OLD & UNUSED
*/
- @action
- addAllPins = () => {
- this._bingMap.current.entities.clear();
- if (this.searched_pin) this._bingMap.current.entities.push(this.searched_pin);
- // this.allMapPushpins.map(pin => this.addPushpin(pin));
- };
+ // @action
+ // addAllPins = () => {
+ // this._bingMap.current.entities.clear();
+ // if (this.searched_pin) this._bingMap.current.entities.push(this.searched_pin);
+ // // this.allMapPushpins.map(pin => this.addPushpin(pin));
+ // };
/*
* Returns doc w/ relevant info
@@ -730,7 +752,9 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
title: 'MapAnchor:' + this.rootDoc.title,
presLat: NumCast(this.dataDoc.latitude),
presLong: NumCast(this.dataDoc.longitude),
- // presTransition: 1000,
+ presZoom: NumCast(this.dataDoc.zoom),
+ presMapType: this.dataDoc.mapType,
+ // presType:
unrendered: true,
annotationOn: this.rootDoc,
});
@@ -764,8 +788,8 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
*/
@action
removePushpin = (pin:any)=>{
- this._bingMap.current.entities.clear();
- this.allMapPushpins
+ // this._bingMap.current.entities.clear();
+ // this.allMapPushpins
this.allMapPushpins.map(pin => this.addPushpin(pin));
}
@@ -798,7 +822,19 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
else this.placePinOn = true;
};
- bingMapReady = (map: any) => (this._bingMap = map.map);
+ /*
+ * Called when BingMap is first rendered
+ * Initializes starting values
+ */
+ bingMapReady = (map: any) => {
+ this._bingMap = map.map;
+ this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'click', this.mapOnClick);
+ this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'viewchangeend', this.updateLayout);
+ this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'maptypechanged', this.updateMapType);
+ this.updateLayout();
+ this.updateMapType();
+ }
+
render() {
const renderAnnotations = (docFilters?: () => string[]) => null;
return (
diff --git a/src/client/views/nodes/trails/PresBox.tsx b/src/client/views/nodes/trails/PresBox.tsx
index d1cfb86ae..0a907c958 100644
--- a/src/client/views/nodes/trails/PresBox.tsx
+++ b/src/client/views/nodes/trails/PresBox.tsx
@@ -464,7 +464,14 @@ export class PresBox extends ViewBoxBaseComponent<FieldViewProps>() {
}
if (bestTarget.longitude !== activeItem.presLong) {
Doc.SetInPlace(bestTarget, "longitude", NumCast(activeItem.presLong), true);
- bestTarget.restoreTargetOn = true;
+ changed = true;
+ }
+ if (bestTarget.zoom !== activeItem.presZoom) {
+ Doc.SetInPlace(bestTarget, "zoom", NumCast(activeItem.presZoom), true);
+ changed = true;
+ }
+ if (bestTarget.mapType !== activeItem.presMapType) {
+ Doc.SetInPlace(bestTarget, "mapType", StrCast(activeItem.presMapType), true);
changed = true;
}
}