From ac5bd7d6350dff347e3eb906dbc8737010fea7a1 Mon Sep 17 00:00:00 2001 From: Willem Dantuma Date: Wed, 28 Sep 2022 21:17:57 +0200 Subject: [PATCH] Do not handle map event in 3D mode --- projects/common-map/src/fm-map/actions/map.actions.ts | 9 ++++++++- .../src/fm-map/components/map/map.component.html | 10 ++++++---- .../src/fm-map/components/map/map.component.ts | 6 +++++- projects/common-map/src/fm-map/reducers/map.reducer.ts | 10 +++++++++- .../common-map3d/src/fm-map3d/common-map3d.module.ts | 4 +++- .../components/olcs/switch2d3d/switch2d3d.component.ts | 6 +++++- 6 files changed, 36 insertions(+), 9 deletions(-) diff --git a/projects/common-map/src/fm-map/actions/map.actions.ts b/projects/common-map/src/fm-map/actions/map.actions.ts index 480c9cc..50377f6 100644 --- a/projects/common-map/src/fm-map/actions/map.actions.ts +++ b/projects/common-map/src/fm-map/actions/map.actions.ts @@ -55,6 +55,7 @@ export const TOGGLELAYERVALUESENABLED = '[Map] ToggleLayerValuesEnabled' export const GETLAYERVALUE = '[Map] GetLayerValue' export const GETLAYERVALUESUCCESS = '[Map] GetLayerValueSuccess' export const TOGGLESHOWDATALAYERSLIDE = '[Map] ToggleShowDataLayerSlide' +export const SETVIEWSTATE = '[Map] SetViewState' export class Clear implements Action { @@ -323,6 +324,11 @@ export class ToggleShowDataLayerSlide implements Action { constructor() {} } +export class SetViewState implements Action { + readonly type = SETVIEWSTATE; + constructor(public enabled:boolean) {} +} + export type Actions = SetMapState | Init | Clear @@ -367,5 +373,6 @@ export type Actions = SetMapState | GetLayerValueSuccess | GetLayerValue | SetPeriod - | ToggleShowDataLayerSlide; + | ToggleShowDataLayerSlide + | SetViewState; diff --git a/projects/common-map/src/fm-map/components/map/map.component.html b/projects/common-map/src/fm-map/components/map/map.component.html index 32abcb5..1b1d7da 100644 --- a/projects/common-map/src/fm-map/components/map/map.component.html +++ b/projects/common-map/src/fm-map/components/map/map.component.html @@ -27,10 +27,12 @@
- - - - + + + + + + diff --git a/projects/common-map/src/fm-map/components/map/map.component.ts b/projects/common-map/src/fm-map/components/map/map.component.ts index c6f209b..f8a8246 100644 --- a/projects/common-map/src/fm-map/components/map/map.component.ts +++ b/projects/common-map/src/fm-map/components/map/map.component.ts @@ -94,6 +94,7 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit { public dataLayerSlideValue:number = 50; public dataLayerSlideEnabled = false; private visibleAreaBottom = 0; + private viewEnabled: boolean = true; @ViewChild('map') map; @ViewChild('contentDiv') contentDiv: ElementRef; @@ -375,6 +376,9 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit { this.dataLayerSlideEnabled=v; this.map.instance.render(); }); + this.store.select(mapReducers.selectGetViewEnabled).subscribe((v) => { + this.viewEnabled = v; + }); } handleSearchCollapse(event) { @@ -428,7 +432,7 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit { } handleOnMoveEnd(event) { - if(this.initialized) { + if(this.initialized && this.viewEnabled) { this.zone.run(() =>{ console.debug("Move end"); var map = event.map; diff --git a/projects/common-map/src/fm-map/reducers/map.reducer.ts b/projects/common-map/src/fm-map/reducers/map.reducer.ts index bd76438..29f0070 100644 --- a/projects/common-map/src/fm-map/reducers/map.reducer.ts +++ b/projects/common-map/src/fm-map/reducers/map.reducer.ts @@ -72,6 +72,7 @@ export interface State { layerValuesEnabled:boolean, layerValues: Array showDataLayerSlide:boolean, + viewEnabled:boolean } export const initialState: State = { @@ -115,7 +116,8 @@ export const initialState: State = { layerValuesY:0, layerValuesEnabled:false, layerValues:[], - showDataLayerSlide:false + showDataLayerSlide:false, + viewEnabled:true } export function reducer(state = initialState, action: mapActions.Actions | commonActions.Actions | RouterNavigationAction): State { @@ -538,6 +540,10 @@ export function reducer(state = initialState, action: mapActions.Actions | commo v.push(a.layervalue); return tassign(state,{layerValues:v}); } + case mapActions.SETVIEWSTATE:{ + let a= action as mapActions.SetViewState; + return tassign(state,{viewEnabled:a.enabled}); + } case commonActions.ITEMDELETEDEVENT:{ let a= action as commonActions.ItemDeletedEvent; if(state.selectedItem && state.selectedItem.code == a.itemCode) { @@ -599,6 +605,7 @@ export const getLayerValuesEnabled = (state:State) => state.layerValuesEnabled; export const getLayerValues = (state:State) => state.layerValues; export const getLayerValuesX = (state:State) => state.layerValuesX; export const getLayerValuesY = (state:State) => state.layerValuesY; +export const getViewEnabled = (state:State) => state.viewEnabled; export const selectMapState = createFeatureSelector(MODULE_NAME); @@ -632,5 +639,6 @@ export const selectGetLayerValuesEnabled = createSelector(selectMapState,getLaye export const selectGetLayerValues = createSelector(selectMapState,getLayerValues); export const selectGetLayerValuesX = createSelector(selectMapState,getLayerValuesX); export const selectGetLayerValuesY = createSelector(selectMapState,getLayerValuesY); +export const selectGetViewEnabled = createSelector(selectMapState,getViewEnabled); diff --git a/projects/common-map3d/src/fm-map3d/common-map3d.module.ts b/projects/common-map3d/src/fm-map3d/common-map3d.module.ts index 6d63832..0f6e93f 100644 --- a/projects/common-map3d/src/fm-map3d/common-map3d.module.ts +++ b/projects/common-map3d/src/fm-map3d/common-map3d.module.ts @@ -1,12 +1,14 @@ import { NgModule } from '@angular/core'; import { Switch2D3DComponent } from './components/olcs/switch2d3d/switch2d3d.component'; import { AppCommonModule} from '@farmmaps/common'; +import { AppCommonMapModule} from '@farmmaps/common-map'; @NgModule({ declarations: [Switch2D3DComponent], imports: [ - AppCommonModule + AppCommonModule, + AppCommonMapModule ], exports: [Switch2D3DComponent] }) diff --git a/projects/common-map3d/src/fm-map3d/components/olcs/switch2d3d/switch2d3d.component.ts b/projects/common-map3d/src/fm-map3d/components/olcs/switch2d3d/switch2d3d.component.ts index 4d5ed64..43443ae 100644 --- a/projects/common-map3d/src/fm-map3d/components/olcs/switch2d3d/switch2d3d.component.ts +++ b/projects/common-map3d/src/fm-map3d/components/olcs/switch2d3d/switch2d3d.component.ts @@ -4,6 +4,8 @@ import { MapComponent } from 'ngx-openlayers'; import OLCesium from 'olcs/OLCesium'; import RasterSynchronizer from 'olcs/RasterSynchronizer'; import VectorSynchronizer from 'olcs/VectorSynchronizer'; +import { mapReducers,mapActions } from '@farmmaps/common-map'; +import { Store } from '@ngrx/store'; @Component({ selector: 'fm-map3d-switch2d3d', @@ -20,7 +22,7 @@ export class Switch2D3DComponent { private interactions:Interaction[] = []; - constructor(private map: MapComponent) { + constructor(private map: MapComponent,private store: Store) { } @@ -62,12 +64,14 @@ export class Switch2D3DComponent { handleClick(event) { this.enable = !this.enable; if(this.enable) { + this.store.dispatch(new mapActions.SetViewState(false)); this.disableInteractions(); this.synchronize(); this.ol3d.setEnabled(true); } else { this.ol3d.setEnabled(false); this.enableInteractions(); + this.store.dispatch(new mapActions.SetViewState(true)); } this.label = this.enable?"2D":"3D";