diff --git a/package.json b/package.json
index 1bd7947..7b22a9a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "farmmaps-lib-app",
- "version": "3.0.1",
+ "version": "3.0.2",
"scripts": {
"ng": "ng",
"start": "ng serve",
diff --git a/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.html b/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.html
index 2fc8b81..b01f7ef 100644
--- a/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.html
+++ b/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.html
@@ -7,7 +7,7 @@
{{layerValue.layerName}}
{{layerValue.date|date}}
- {{layerValue.quantity}} {{layerValue.value}}{{layerValue.unit}}
+ {{layerValue.quantity}} {{getScaledValue(layerValue)}}{{layerValue.unit}}
@@ -15,4 +15,4 @@
->
+
diff --git a/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.ts b/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.ts
index 59331d3..84d30ce 100644
--- a/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.ts
+++ b/projects/common-map/src/fm-map/components/aol/layer-values/layer-values.component.ts
@@ -1,16 +1,16 @@
-import { Component, OnInit,Input,ViewChild,ElementRef,AfterViewInit } from '@angular/core';
-import {IItemLayer} from '../../../models/item.layer';
+import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from '@angular/core';
+import { IItemLayer } from '../../../models/item.layer';
import { Store } from '@ngrx/store';
import * as mapReducers from '../../../reducers/map.reducer';
import * as mapActions from '../../../actions/map.actions';
import { MapComponent } from 'ngx-openlayers';
import { ILayervalue } from '../../../models/layer.value';
-import { Observable,interval,Subject } from 'rxjs';
+import { Observable, interval, Subject } from 'rxjs';
import { debounce, throttle } from 'rxjs/operators';
import { toLonLat } from 'ol/proj';
import { toStringHDMS } from 'ol/coordinate';
import { ClipboardService } from 'ngx-clipboard'
-import {GeoJSON,WKT} from 'ol/format';
+import { GeoJSON, WKT } from 'ol/format';
import { Point } from 'ol/geom';
@Component({
@@ -18,45 +18,53 @@ import { Point } from 'ol/geom';
templateUrl: './layer-values.component.html',
styleUrls: ['./layer-values.component.scss']
})
-export class LayerValuesComponent implements OnInit,AfterViewInit {
+export class LayerValuesComponent implements OnInit, AfterViewInit {
- @ViewChild('layerValues') containerRef:ElementRef;
- offsetX$ =0;
- offsetY$ =0;
- lonlat$="";
- wkt$= "";
- layerValues$:Observable> = this.store.select(mapReducers.selectGetLayerValues);
- enabled$:Observable = this.store.select(mapReducers.selectGetLayerValuesEnabled);
- wktFormat$:WKT;
+ @ViewChild('layerValues') containerRef: ElementRef;
+ offsetX$ = 0;
+ offsetY$ = 0;
+ lonlat$ = "";
+ wkt$ = "";
+ layerValues$: Observable> = this.store.select(mapReducers.selectGetLayerValues);
+ enabled$: Observable = this.store.select(mapReducers.selectGetLayerValuesEnabled);
+ wktFormat$: WKT;
- constructor( private store: Store,private map: MapComponent,private clipboardService$:ClipboardService) {
- this.wktFormat$=new WKT();
+ constructor(private store: Store, private map: MapComponent, private clipboardService$: ClipboardService) {
+ this.wktFormat$ = new WKT();
}
ngOnInit(): void {
-
+
}
moveEndSubject = new Subject();
- ngAfterViewInit():void {
+ ngAfterViewInit(): void {
this.offsetY$ = this.containerRef.nativeElement.offsetTop;
this.offsetX$ = this.containerRef.nativeElement.offsetLeft;
this.map.instance.on('moveend', () => {
- this.moveEndSubject.next({});
+ this.moveEndSubject.next({});
});
- this.moveEndSubject.pipe(throttle(ev => interval(100))).subscribe(() => this.updateValuesLocation());
+ this.moveEndSubject.pipe(throttle(ev => interval(100))).subscribe(() => this.updateValuesLocation());
}
updateValuesLocation() {
- const xy = this.map.instance.getCoordinateFromPixel([this.offsetX$,this.offsetY$])
+ const xy = this.map.instance.getCoordinateFromPixel([this.offsetX$, this.offsetY$])
const lonlat = toLonLat(xy);
this.wkt$ = this.wktFormat$.writeGeometry(new Point(lonlat))
this.lonlat$ = toStringHDMS(lonlat);
- this.store.dispatch(new mapActions.SetLayerValuesLocation(xy[0],xy[1]));
- }
+ this.store.dispatch(new mapActions.SetLayerValuesLocation(xy[0], xy[1]));
+ }
copyToClipboard() {
this.clipboardService$.copy(this.wkt$);
}
+
+ public getScaledValue(layerValue: ILayervalue): number {
+ let v = layerValue.value;
+ if (layerValue.scale && layerValue.scale != 0) {
+ v = layerValue.scale * layerValue.value;
+ }
+ return v;
+ }
}
diff --git a/projects/common-map/src/fm-map/effects/map.effects.ts b/projects/common-map/src/fm-map/effects/map.effects.ts
index 9ed05a8..a411723 100644
--- a/projects/common-map/src/fm-map/effects/map.effects.ts
+++ b/projects/common-map/src/fm-map/effects/map.effects.ts
@@ -1,34 +1,34 @@
import { Injectable } from '@angular/core';
-import { Store, Action,createFeatureSelector } from '@ngrx/store';
+import { Store, Action, createFeatureSelector } from '@ngrx/store';
import { ROUTER_NAVIGATED, RouterReducerState } from '@ngrx/router-store';
import * as fromRouter from '@ngrx/router-store';
-import { createEffect, Actions,ofType } from '@ngrx/effects';
+import { createEffect, Actions, ofType } from '@ngrx/effects';
-import { EMPTY, Observable , of} from 'rxjs';
+import { EMPTY, Observable, of } from 'rxjs';
import { withLatestFrom, switchMap, map, catchError, mergeMap } from 'rxjs/operators';
-import {GeoJSON,WKT} from 'ol/format';
-import {Feature} from 'ol';
-import { getCenter,createEmpty,extend } from 'ol/extent';
-import {Point,Geometry} from 'ol/geom'
+import { GeoJSON, WKT } from 'ol/format';
+import { Feature } from 'ol';
+import { getCenter, createEmpty, extend } from 'ol/extent';
+import { Point, Geometry } from 'ol/geom'
import * as mapActions from '../actions/map.actions';
import * as mapReducers from '../reducers/map.reducer';
-import {commonReducers} from '@farmmaps/common';
+import { commonReducers } from '@farmmaps/common';
-import {commonActions} from '@farmmaps/common';
+import { commonActions } from '@farmmaps/common';
import { IItem } from '@farmmaps/common';
import { FolderService, ItemService } from '@farmmaps/common';
import { tassign } from 'tassign';
-import {FeatureIconService} from '../services/feature-icon.service';
+import { FeatureIconService } from '../services/feature-icon.service';
import * as style from 'ol/style';
-import { ItemTypeService,IQueryState } from '@farmmaps/common';
+import { ItemTypeService, IQueryState } from '@farmmaps/common';
import { TemporalItemLayer } from '../models/item.layer'
export const getRouterState = createFeatureSelector('router');
@@ -50,9 +50,9 @@ export class MapEffects {
private _wktFormat: WKT;
private overrideSelectedItemLayer = false;
- private updateFeatureGeometry(feature:Feature, updateEvent:commonActions.DeviceUpdateEvent): Feature {
+ private updateFeatureGeometry(feature: Feature, updateEvent: commonActions.DeviceUpdateEvent): Feature {
const newFeature = feature.clone();
- const f = this._wktFormat.readFeature(updateEvent.attributes["geometry"],{
+ const f = this._wktFormat.readFeature(updateEvent.attributes["geometry"], {
dataProjection: 'EPSG:4326',
featureProjection: 'EPSG:3857'
});
@@ -62,19 +62,19 @@ export class MapEffects {
return newFeature;
}
- init$ = createEffect(() => this.actions$.pipe(
+ init$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.INIT),
withLatestFrom(this.store$.select(commonReducers.selectGetRootItems)),
switchMap(([action, rootItems]) => {
- const actions=[];
+ const actions = [];
for (const rootItem of rootItems) {
if (rootItem.itemType == "UPLOADS_FOLDER") actions.push(new mapActions.SetParent(rootItem.code));
}
// initialize default feature styles
- actions.push(new mapActions.SetStyle('file',new style.Style({
+ actions.push(new mapActions.SetStyle('file', new style.Style({
image: new style.Icon({
- anchor: [0.5, 1],
- scale: 0.05,
+ anchor: [0.5, 1],
+ scale: 0.05,
src: this.featureIconService$.getIconImageDataUrl("fal fa-file")
}),
stroke: new style.Stroke({
@@ -85,7 +85,7 @@ export class MapEffects {
color: 'rgba(0, 0, 0,0)'
})
})));
- actions.push(new mapActions.SetStyle('selected',new style.Style({
+ actions.push(new mapActions.SetStyle('selected', new style.Style({
image: new style.Icon({
anchor: [0.5, 1],
scale: 0.08,
@@ -104,13 +104,13 @@ export class MapEffects {
}
)));
- initBaseLayers$ = createEffect(() => this.actions$.pipe(
+ initBaseLayers$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.INIT),
withLatestFrom(this.store$.select(mapReducers.selectGetProjection)),
map(([action, projection]) => new mapActions.LoadBaseLayers(projection)))
);
- loadBaseLayers$ = createEffect(() => this.actions$.pipe(
+ loadBaseLayers$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.LOADBASELAYERS),
switchMap((action: mapActions.LoadBaseLayers) => {
return this.itemService$.getItemList("vnd.farmmaps.itemtype.layer", { "isBaseLayer": true }).pipe(
@@ -118,15 +118,15 @@ export class MapEffects {
catchError(error => of(new commonActions.Fail(error))));
})));
- startSearch$ = createEffect(() => this.actions$.pipe(
+ startSearch$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.STARTSEARCH),
switchMap((action) => {
const a = action as mapActions.StartSearch;
const startDate = a.queryState.startDate;
const endDate = a.queryState.endDate;
- let newAction:Observable;
+ let newAction: Observable;
if (a.queryState.itemCode || a.queryState.parentCode || a.queryState.itemType || a.queryState.query || a.queryState.tags) {
- newAction= this.itemService$.getFeatures(a.queryState.bbox, "EPSG:3857", a.queryState.query, a.queryState.tags, startDate, endDate, a.queryState.itemType, a.queryState.parentCode, a.queryState.dataFilter, a.queryState.level).pipe(
+ newAction = this.itemService$.getFeatures(a.queryState.bbox, "EPSG:3857", a.queryState.query, a.queryState.tags, startDate, endDate, a.queryState.itemType, a.queryState.parentCode, a.queryState.dataFilter, a.queryState.level).pipe(
switchMap((features: any) => {
for (const f of features.features) {
if (f.properties && f.properties["code"]) {
@@ -144,18 +144,18 @@ export class MapEffects {
})));
- zoomToExtent$ = createEffect(() => this.actions$.pipe(
+ zoomToExtent$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.STARTSEARCHSUCCESS),
mergeMap((action: mapActions.StartSearchSuccess) => {
- const actions =[];
+ const actions = [];
actions.push(new commonActions.SetMenuVisible(false));
const extent = createEmpty();
if (!action.query.bboxFilter) {
- if (extent) {
+ if (extent) {
for (const f of action.features) {
extend(extent, (f as Feature).getGeometry().getExtent());
}
- if(action.features && action.features.length >0) {
+ if (action.features && action.features.length > 0) {
actions.push(new mapActions.SetExtent(extent));
}
}
@@ -163,64 +163,64 @@ export class MapEffects {
return actions;
})));
- zoomToExtent2$ = createEffect(() => this.actions$.pipe(
- ofType(mapActions.SETFEATURES),
- switchMap((action: mapActions.SetFeatures) => {
- const extent = createEmpty();
- if (extent) {
- for (const f of action.features) {
- extend(extent, (f as Feature).getGeometry().getExtent());
- }
- if(action.features.length>0) return of(new mapActions.SetExtent(extent));
+ zoomToExtent2$ = createEffect(() => this.actions$.pipe(
+ ofType(mapActions.SETFEATURES),
+ switchMap((action: mapActions.SetFeatures) => {
+ const extent = createEmpty();
+ if (extent) {
+ for (const f of action.features) {
+ extend(extent, (f as Feature).getGeometry().getExtent());
}
- return EMPTY;
- })));
+ if (action.features.length > 0) return of(new mapActions.SetExtent(extent));
+ }
+ return EMPTY;
+ })));
- hideMenu$ = createEffect(() => this.actions$.pipe(
+ hideMenu$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.STARTSEARCHSUCCESS),
mergeMap((action: mapActions.StartSearchSuccess) => {
return of(new commonActions.SetMenuVisible(false));
})));
- selectItem$ = createEffect(() => this.actions$.pipe(
+ selectItem$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.SELECTITEM),
withLatestFrom(this.store$.select(mapReducers.selectGetSelectedItem)),
- switchMap(([action, selectedItem]) => {
- const a = action as mapActions.SelectItem;
- const itemCode = selectedItem ? selectedItem.code : "";
- if (a.itemCode != itemCode) {
- return this.itemService$.getItem(a.itemCode).pipe(
- switchMap(child => {
- return this.itemService$.getItem(child.parentCode)
- .pipe(map(parent => {
- return {child, parent};
- }),catchError(() => { const parent:IItem = null;return of({child,parent})})
- );
- }),
- map(data => new mapActions.SelectItemSuccess(data.child, data.parent)),
- catchError(error => of(new commonActions.Fail(error))))
- } else {
- return [];
- }
+ switchMap(([action, selectedItem]) => {
+ const a = action as mapActions.SelectItem;
+ const itemCode = selectedItem ? selectedItem.code : "";
+ if (a.itemCode != itemCode) {
+ return this.itemService$.getItem(a.itemCode).pipe(
+ switchMap(child => {
+ return this.itemService$.getItem(child.parentCode)
+ .pipe(map(parent => {
+ return { child, parent };
+ }), catchError(() => { const parent: IItem = null; return of({ child, parent }) })
+ );
+ }),
+ map(data => new mapActions.SelectItemSuccess(data.child, data.parent)),
+ catchError(error => of(new commonActions.Fail(error))))
+ } else {
+ return [];
}
+ }
)));
- selectItemSuccessSetLayer$ = createEffect(() => this.actions$.pipe(
- ofType(mapActions.SELECTITEMSUCCESS),
- map((action:mapActions.SelectItemSuccess) =>
- new mapActions.SetSelectedItemLayer(action.item)
- )
- ));
-
- selectItemSuccess$ = createEffect(() => this.actions$.pipe(
+ selectItemSuccessSetLayer$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.SELECTITEMSUCCESS),
- switchMap((action:mapActions.SelectItemSuccess) => {
- if(!this.overrideSelectedItemLayer) {
+ map((action: mapActions.SelectItemSuccess) =>
+ new mapActions.SetSelectedItemLayer(action.item)
+ )
+ ));
+
+ selectItemSuccess$ = createEffect(() => this.actions$.pipe(
+ ofType(mapActions.SELECTITEMSUCCESS),
+ switchMap((action: mapActions.SelectItemSuccess) => {
+ if (!this.overrideSelectedItemLayer) {
return this.itemService$.getFeature(action.item.code, "EPSG:3857").pipe(
map((feature: any) => {
const f = this._geojsonFormat.readFeature(feature);
f.setId(action.item.code);
- return new mapActions.AddFeatureSuccess(f );
+ return new mapActions.AddFeatureSuccess(f);
}),
catchError(error => of(new commonActions.Fail(error))));
} else {
@@ -229,29 +229,29 @@ export class MapEffects {
}
)));
- selectItemSuccessTemporal$ = createEffect(() => this.actions$.pipe(
- ofType(mapActions.SELECTITEMSUCCESS),
- switchMap((action:mapActions.SelectItemSuccess) => {
- if(action.item.itemType == "vnd.farmmaps.itemtype.temporal") {
- return this.itemService$.getChildItemList(action.item.code,null).pipe(
- map(items => new mapActions.SelectTemporalItemsSuccess(
- items.sort((a, b) =>
- -(Date.parse(b.dataDate) - Date.parse(a.dataDate))
- )
- )),
- catchError(error => of(new commonActions.Fail(error))));
- } else {
- return [];
- }
+ selectItemSuccessTemporal$ = createEffect(() => this.actions$.pipe(
+ ofType(mapActions.SELECTITEMSUCCESS),
+ switchMap((action: mapActions.SelectItemSuccess) => {
+ if (action.item.itemType == "vnd.farmmaps.itemtype.temporal") {
+ return this.itemService$.getChildItemList(action.item.code, null).pipe(
+ map(items => new mapActions.SelectTemporalItemsSuccess(
+ items.sort((a, b) =>
+ -(Date.parse(b.dataDate) - Date.parse(a.dataDate))
+ )
+ )),
+ catchError(error => of(new commonActions.Fail(error))));
+ } else {
+ return [];
}
- )));
-
- uploadedItemClick$ = createEffect(() => this.actions$.pipe(
- ofType(commonActions.UPLOADEDFILECLICK),
- switchMap((action: commonActions.UploadedFileClick) => of(new mapActions.DoQuery(tassign(mapReducers.initialState.query.querystate, {itemCode:action.itemCode})))
+ }
)));
- featureUpdate$ = createEffect(() => this.actions$.pipe(
+ uploadedItemClick$ = createEffect(() => this.actions$.pipe(
+ ofType(commonActions.UPLOADEDFILECLICK),
+ switchMap((action: commonActions.UploadedFileClick) => of(new mapActions.DoQuery(tassign(mapReducers.initialState.query.querystate, { itemCode: action.itemCode })))
+ )));
+
+ featureUpdate$ = createEffect(() => this.actions$.pipe(
ofType(commonActions.DEVICEUPDATEEVENT),
withLatestFrom(this.store$.select(mapReducers.selectGetFeatures)),
mergeMap(([action, features]) => {
@@ -264,13 +264,13 @@ export class MapEffects {
}
}
if (feature) {
- return of(new mapActions.UpdateFeatureSuccess(this.updateFeatureGeometry(feature,deviceUpdateEventAction)));
+ return of(new mapActions.UpdateFeatureSuccess(this.updateFeatureGeometry(feature, deviceUpdateEventAction)));
} else {
return [];
}
})));
- itemUpdate$ = createEffect(() => this.actions$.pipe(
+ itemUpdate$ = createEffect(() => this.actions$.pipe(
ofType(commonActions.ITEMCHANGEDEVENT),
withLatestFrom(this.store$.select(mapReducers.selectGetSelectedItem)),
mergeMap(([action, selectedItem]) => {
@@ -280,8 +280,8 @@ export class MapEffects {
switchMap(child => {
return this.itemService$.getItem(child.parentCode)
.pipe(map(parent => {
- return {child, parent};
- })
+ return { child, parent };
+ })
);
}),
map(data => new mapActions.SelectItemSuccess(data.child, data.parent)),
@@ -291,13 +291,13 @@ export class MapEffects {
}
})));
- getActionFromQueryState(queryState:IQueryState, inSearch:boolean):Observable|[] {
- if(!inSearch && (queryState.itemType || queryState.parentCode || queryState.itemCode || queryState.query || queryState.tags)) {
- var newAction:Action;
+ getActionFromQueryState(queryState: IQueryState, inSearch: boolean): Observable | [] {
+ if (!inSearch && (queryState.itemType || queryState.parentCode || queryState.itemCode || queryState.query || queryState.tags)) {
+ var newAction: Action;
if (queryState.itemCode && queryState.itemCode != "") {
- newAction= new mapActions.SelectItem(queryState.itemCode);
+ newAction = new mapActions.SelectItem(queryState.itemCode);
} else {
- newAction= new mapActions.StartSearch(queryState);
+ newAction = new mapActions.StartSearch(queryState);
}
} else {
@@ -306,104 +306,104 @@ export class MapEffects {
return of(newAction);
}
- getLayerValue$ = createEffect(() => this.actions$.pipe(
+ getLayerValue$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.GETLAYERVALUE),
- mergeMap((action:mapActions.GetLayerValue) => {
+ mergeMap((action: mapActions.GetLayerValue) => {
const l = action.itemLayer.item.data["layers"][action.itemLayer.layerIndex];
- const scale = l.scale?l.scale:1;
- return this.itemService$.getLayerValue(action.itemLayer.item.code,action.itemLayer.layerIndex,action.x,action.y).pipe(
+ const scale = l.scale ? l.scale : 1;
+ return this.itemService$.getLayerValue(action.itemLayer.item.code, action.itemLayer.layerIndex, action.x, action.y).pipe(
mergeMap((v: number) => {
- const a=[];
- if(v !== null) {
- if(l.renderer && l.renderer.colorMap && l.renderer.colorMap.colormapType == "manual") {
+ const a = [];
+ if (v !== null) {
+ if (l.renderer && l.renderer.colorMap && l.renderer.colorMap.colormapType == "manual") {
l.renderer.colorMap.entries.forEach((e) => {
- if(e.value == v && e.label) {
- v=e.label;
- return;
- }
+ if (e.value == v && e.label) {
+ v = e.label;
+ return;
+ }
});
- a.push(new mapActions.GetLayerValueSuccess({date:action.itemLayer.item.dataDate,value:v,layerName:l.name,quantity:"",unit:l.unit}));
+ a.push(new mapActions.GetLayerValueSuccess({ date: action.itemLayer.item.dataDate, value: v, layerName: l.name, quantity: "", unit: l.unit, scale: l.scale }));
} else {
- a.push(new mapActions.GetLayerValueSuccess({date:action.itemLayer.item.dataDate,value:v*scale,layerName:l.name,quantity:l.quantity,unit:l.unit}));
+ a.push(new mapActions.GetLayerValueSuccess({ date: action.itemLayer.item.dataDate, value: v * scale, layerName: l.name, quantity: l.quantity, unit: l.unit, scale: l.scale }));
}
}
return a;
}))
- }
- )));
+ }
+ )));
- updateLayerValuesOnLayerAddedOrRemoved$ = createEffect(() => this.actions$.pipe(
- ofType(mapActions.ADDLAYER,mapActions.REMOVELAYER,mapActions.SELECTITEMSUCCESS,mapActions.SELECTTEMPORALITEMSSUCCESS, mapActions.NEXTTEMPORAL,mapActions.PREVIOUSTEMPORAL,mapActions.TOGGLELAYERVALUESENABLED,mapActions.SETLAYERINDEX,mapActions.SETSELECTEDITEMLAYER),
- withLatestFrom(this.store$.select(mapReducers.selectGetLayerValuesX)),
- withLatestFrom(this.store$.select(mapReducers.selectGetLayerValuesY)),
- map(([[action,x],y]) => new mapActions.SetLayerValuesLocation(x,y))
+ updateLayerValuesOnLayerAddedOrRemoved$ = createEffect(() => this.actions$.pipe(
+ ofType(mapActions.ADDLAYER, mapActions.REMOVELAYER, mapActions.SELECTITEMSUCCESS, mapActions.SELECTTEMPORALITEMSSUCCESS, mapActions.NEXTTEMPORAL, mapActions.PREVIOUSTEMPORAL, mapActions.TOGGLELAYERVALUESENABLED, mapActions.SETLAYERINDEX, mapActions.SETSELECTEDITEMLAYER),
+ withLatestFrom(this.store$.select(mapReducers.selectGetLayerValuesX)),
+ withLatestFrom(this.store$.select(mapReducers.selectGetLayerValuesY)),
+ map(([[action, x], y]) => new mapActions.SetLayerValuesLocation(x, y))
));
- getLayerValues$ = createEffect(() => this.actions$.pipe(
+ getLayerValues$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.SETLAYERVALUESLOCATION),
withLatestFrom(this.store$.select(mapReducers.selectGetSelectedItemLayer)),
withLatestFrom(this.store$.select(mapReducers.selectGetLayerValuesEnabled)),
withLatestFrom(this.store$.select(mapReducers.selectGetOverlayLayers)),
- mergeMap(([[[action, selected], enabled],overlayLayers]) => {
+ mergeMap(([[[action, selected], enabled], overlayLayers]) => {
const layers = [];
- if(selected) {
- if(selected && (selected as TemporalItemLayer).selectedItemLayer ) {
- selected=(selected as TemporalItemLayer).selectedItemLayer;
+ if (selected) {
+ if (selected && (selected as TemporalItemLayer).selectedItemLayer) {
+ selected = (selected as TemporalItemLayer).selectedItemLayer;
}
layers.push(selected);
}
overlayLayers.forEach((ol) => {
- if(ol!=selected) layers.push(ol);
+ if (ol != selected) layers.push(ol);
});
const a = action as mapActions.SetLayerValuesLocation;
const actions = [];
- if(enabled) {
+ if (enabled) {
layers.forEach((ol) => {
- if("vnd.farmmaps.itemtype.shape.processed,vnd.farmmaps.itemtype.geotiff.processed".indexOf(ol.item.itemType)>=0) {
- actions.push(new mapActions.GetLayerValue(ol,a.x,a.y));
- }
- });
+ if ("vnd.farmmaps.itemtype.shape.processed,vnd.farmmaps.itemtype.geotiff.processed".indexOf(ol.item.itemType) >= 0) {
+ actions.push(new mapActions.GetLayerValue(ol, a.x, a.y));
+ }
+ });
}
return actions;
})));
- setState$ = createEffect(() => this.actions$.pipe(
+ setState$ = createEffect(() => this.actions$.pipe(
ofType(mapActions.SETSTATE),
withLatestFrom(this.store$.select(mapReducers.selectGetInSearch)),
- switchMap(([action,inSearch]) => {
+ switchMap(([action, inSearch]) => {
const a = action as mapActions.SetState;
- return this.getActionFromQueryState(a.queryState,inSearch);
+ return this.getActionFromQueryState(a.queryState, inSearch);
})));
- escape$ = createEffect(() => this.actions$.pipe(
- ofType(commonActions.ESCAPE),
- switchMap((action) => {
- const a = action as commonActions.Escape;
- if(a.escapeKey) {
- return of(new mapActions.Clear());
- } else {
- return EMPTY;
- }
- })));
+ escape$ = createEffect(() => this.actions$.pipe(
+ ofType(commonActions.ESCAPE),
+ switchMap((action) => {
+ const a = action as commonActions.Escape;
+ if (a.escapeKey) {
+ return of(new mapActions.Clear());
+ } else {
+ return EMPTY;
+ }
+ })));
- setOverride$ = createEffect(() => this.actions$.pipe(
- ofType(ROUTER_NAVIGATED),
- switchMap(() => this.store$.select(selectRouteData as any)),
- switchMap((data: any) => {
- if(data && data["fm-map-map"]) {
- const params = data["fm-map-map"];
- this.overrideSelectedItemLayer = params["overrideSelectedItemlayer"] ? params["overrideSelectedItemlayer"] : false;
- } else {
- this.overrideSelectedItemLayer = false;
- }
- return [];
- })
- ));
+ setOverride$ = createEffect(() => this.actions$.pipe(
+ ofType(ROUTER_NAVIGATED),
+ switchMap(() => this.store$.select(selectRouteData as any)),
+ switchMap((data: any) => {
+ if (data && data["fm-map-map"]) {
+ const params = data["fm-map-map"];
+ this.overrideSelectedItemLayer = params["overrideSelectedItemlayer"] ? params["overrideSelectedItemlayer"] : false;
+ } else {
+ this.overrideSelectedItemLayer = false;
+ }
+ return [];
+ })
+ ));
- constructor(private actions$: Actions, private store$: Store, private folderService$: FolderService, private itemService$: ItemService,private featureIconService$:FeatureIconService,private itemTypeService$:ItemTypeService) {
+ constructor(private actions$: Actions, private store$: Store, private folderService$: FolderService, private itemService$: ItemService, private featureIconService$: FeatureIconService, private itemTypeService$: ItemTypeService) {
this._geojsonFormat = new GeoJSON();
this._wktFormat = new WKT();
- }
+ }
}
diff --git a/projects/common-map/src/fm-map/models/layer.value.ts b/projects/common-map/src/fm-map/models/layer.value.ts
index ac71c3e..b77711d 100644
--- a/projects/common-map/src/fm-map/models/layer.value.ts
+++ b/projects/common-map/src/fm-map/models/layer.value.ts
@@ -1,7 +1,8 @@
export interface ILayervalue {
- date:string;
- layerName:string;
- unit:string;
- quantity:string;
- value:number;
+ date: string;
+ layerName: string;
+ unit: string;
+ quantity: string;
+ value: number;
+ scale: number;
}
\ No newline at end of file