Fix navigation issue
FarmMaps.Develop/FarmMapsLib/develop This commit looks good Details

feature/MinimizeSolution
Willem Dantuma 2020-02-20 17:38:05 +01:00
parent 1a3bbf26f2
commit f82125a486
3 changed files with 36 additions and 27 deletions

View File

@ -150,11 +150,11 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit {
this.compassHeading$ = this.deviceorientationService.getCurrentCompassHeading();
this.styles$ = this.store.select(mapReducers.selectGetStyles);
this.mapState$.pipe(withLatestFrom(this.queryState$)).subscribe((state) => {
this.replaceUrl(state[0], state[1], true);
});
// this.mapState$.pipe(withLatestFrom(this.queryState$)).subscribe((state) => {
// this.replaceUrl(state[0], state[1], true);
// });
this.query$.pipe(withLatestFrom(this.mapState$)).subscribe((state) => {
this.replaceUrl(state[1], state[0],false);
this.replaceUrl(state[1], state[0],this.stateSetCount == 0);
});
this.initCustomStyles();
}
@ -210,17 +210,27 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit {
queryStateChanged = this.lastQueryState != queryState;
this.lastQueryState = queryState;
}
this.zone.run(()=> {
if ( queryStateChanged) {
console.debug("Query state");
this.store.dispatch(new mapActions.SetQueryState(newQueryState));
} else if (mapStateChanged) {
console.debug("Map state");
this.store.dispatch(new mapActions.SetMapState(newMapState));
}
})
if (mapStateChanged && queryStateChanged) {
console.debug("Both states");
this.store.dispatch(new mapActions.SetState(newMapState, newQueryState));
} else if (mapStateChanged) {
console.debug("Map state");
this.store.dispatch(new mapActions.SetMapState(newMapState));
} else if (queryStateChanged) {
console.debug("Query state");
this.store.dispatch(new mapActions.SetQueryState(newQueryState));
}
// if (mapStateChanged && queryStateChanged) {
// console.debug("Both states");
// this.store.dispatch(new mapActions.SetState(newMapState, newQueryState));
// } else if (mapStateChanged) {
// console.debug("Map state");
// this.store.dispatch(new mapActions.SetMapState(newMapState));
// } else if (queryStateChanged) {
// console.debug("Query state");
// this.store.dispatch(new mapActions.SetQueryState(newQueryState));
// }
this.stateSetCount += 1;
});
setTimeout(() => {

View File

@ -139,19 +139,7 @@ export class MapEffects {
startSearchSucces$: Observable<Action> = this.actions$.pipe(
ofType(mapActions.STARTSEARCHSUCCESS),
mergeMap((action: mapActions.StartSearchSuccess) => {
if (action.query.bboxFilter) {
return [new commonActions.SetMenuVisible(false)];
} else {
var extent = createEmpty();
if (extent) {
for (let f of action.features) {
extend(extent, (f as Feature).getGeometry().getExtent());
}
}
//return [];
return [new mapActions.SetExtent(extent),new commonActions.SetMenuVisible(false)];
}
}));
@Effect()

View File

@ -10,6 +10,7 @@ import {commonActions} from '@farmmaps/common';
import { createSelector, createFeatureSelector } from '@ngrx/store';
import {Feature} from 'ol';
import { createEmpty, extend} from 'ol/extent';
import { ROUTER_NAVIGATION, RouterNavigationAction } from '@ngrx/router-store';
@ -124,11 +125,21 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
}
case mapActions.STARTSEARCHSUCCESS: {
let a = action as mapActions.StartSearchSuccess;
let extent = state.extent;
if (action.query.bboxFilter) {
extent = createEmpty();
if (extent) {
for (let f of action.features) {
extend(extent, (f as Feature).getGeometry().getExtent());
}
}
}
return tassign(state, {
panelVisible: true,
clearEnabled: true,
searchMinified: true,
features: a.features
features: a.features,
extent:extent
});
}
case mapActions.SELECTFEATURE: {