Compare commits
	
		
			2 Commits
		
	
	
		
			3094170cc2
			...
			47f77c2819
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					47f77c2819 | ||
| 
						 | 
					8e29e479de | 
@@ -5,6 +5,7 @@ import { IItemLayer } from '../models/item.layer';
 | 
			
		||||
import { IQueryState } from '@farmmaps/common';
 | 
			
		||||
import { IItem } from '@farmmaps/common';
 | 
			
		||||
import { Feature,Style } from 'ol';
 | 
			
		||||
import { IListItem } from 'dist/common/public-api';
 | 
			
		||||
 | 
			
		||||
export const SETSTATE = '[Map] SetState';
 | 
			
		||||
export const SETMAPSTATE = '[Map] MapState';
 | 
			
		||||
@@ -16,6 +17,7 @@ export const STARTSEARCHSUCCESS = '[Map] StartSearchSuccess';
 | 
			
		||||
export const SELECTFEATURE = '[Map] SelectFeature';
 | 
			
		||||
export const SELECTITEM = '[Map] SelectItem';
 | 
			
		||||
export const SELECTITEMSUCCESS = '[Map] SelectItemSuccess';
 | 
			
		||||
export const SELECTTEMPORALITEMSSUCCESS = '[Map] SelectTemporalItemsSuccess';
 | 
			
		||||
export const ADDFEATURESUCCESS = '[Map] AddFeatureSuccess';
 | 
			
		||||
export const UPDATEFEATURESUCCESS = '[Map] UpdateFeatureSuccess';
 | 
			
		||||
export const EXPANDSEARCH = '[Map] ExpandSearch';
 | 
			
		||||
@@ -97,6 +99,12 @@ export class SelectItemSuccess implements Action {
 | 
			
		||||
  constructor(public item: IItem) { }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class SelectTemporalItemsSuccess implements Action {
 | 
			
		||||
  readonly type = SELECTTEMPORALITEMSSUCCESS;
 | 
			
		||||
 | 
			
		||||
  constructor(public temporalItems: IItem[]) { }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class AddFeatureSuccess implements Action {
 | 
			
		||||
  readonly type = ADDFEATURESUCCESS;
 | 
			
		||||
 | 
			
		||||
@@ -224,6 +232,7 @@ export type Actions = SetMapState
 | 
			
		||||
  | SelectFeature
 | 
			
		||||
  | SelectItem
 | 
			
		||||
  | SelectItemSuccess
 | 
			
		||||
  | SelectTemporalItemsSuccess
 | 
			
		||||
  | AddFeatureSuccess
 | 
			
		||||
  | UpdateFeatureSuccess
 | 
			
		||||
  | ExpandSearch
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ import { HttpClient } from "@angular/common/http";
 | 
			
		||||
import { LayerVectorComponent, LayerTileComponent, LayerGroupComponent, MapComponent } from 'ngx-openlayers';
 | 
			
		||||
import { ItemService } from '@farmmaps/common';
 | 
			
		||||
import { AppConfig } from '@farmmaps/common';
 | 
			
		||||
import { IItemLayer} from '../../../models/item.layer';
 | 
			
		||||
import { IItemLayer,ItemLayer, ITemporalItemLayer} from '../../../models/item.layer';
 | 
			
		||||
import { ILayerData} from '../../../models/layer.data';
 | 
			
		||||
import { IRenderoutputTiles,IRenderoutputImage,IGradientstop,ILayer,IHistogram} from '../../../models/color.map';
 | 
			
		||||
import {Extent} from 'ol/extent';
 | 
			
		||||
@@ -227,6 +227,8 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  createTemporalLayer(item:IItem,itemLayer:IItemLayer):Layer {
 | 
			
		||||
    let i = itemLayer as ITemporalItemLayer;
 | 
			
		||||
    
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -240,7 +242,10 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
 | 
			
		||||
    } else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.layer') {
 | 
			
		||||
      layer = this.createExternalLayer(itemLayer.item,itemLayer);
 | 
			
		||||
    } else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.temporal') {
 | 
			
		||||
      layer = this.createTemporalLayer(itemLayer.item,itemLayer);
 | 
			
		||||
      var i = itemLayer as ITemporalItemLayer;
 | 
			
		||||
      if(i.selectedItem) {
 | 
			
		||||
        layer = this.createLayer( new ItemLayer(i.selectedItem) );
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (layer) {
 | 
			
		||||
      let geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
 | 
			
		||||
 
 | 
			
		||||
@@ -172,6 +172,21 @@ export class MapEffects {
 | 
			
		||||
    }
 | 
			
		||||
    ));
 | 
			
		||||
 | 
			
		||||
    @Effect()
 | 
			
		||||
    selectItemSuccessTemporal$: Observable<Action> = 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 => items.sort((a, b) => b.dataDate.getTime() - a.dataDate.getTime())),
 | 
			
		||||
            map((items) =>  new mapActions.SelectTemporalItemsSuccess(items )),
 | 
			
		||||
            catchError(error => of(new commonActions.Fail(error))));
 | 
			
		||||
        } else {
 | 
			
		||||
           return [];
 | 
			
		||||
        }        
 | 
			
		||||
      }
 | 
			
		||||
      ));
 | 
			
		||||
 | 
			
		||||
  @Effect()
 | 
			
		||||
  uploadedItemClick$: Observable<Action> = this.actions$.pipe(
 | 
			
		||||
      ofType(commonActions.UPLOADEDFILECLICK),
 | 
			
		||||
 
 | 
			
		||||
@@ -27,18 +27,20 @@ export class ItemLayer implements IItemLayer {
 | 
			
		||||
 | 
			
		||||
export interface ITemporalItemLayer extends IItemLayer {
 | 
			
		||||
  previousLayer: Layer
 | 
			
		||||
  selectedLayer: Layer,
 | 
			
		||||
  nextLayer: Layer
 | 
			
		||||
  temporalItems: IListItem[],
 | 
			
		||||
  selectedItem: IListItem
 | 
			
		||||
  temporalItems: IItem[],
 | 
			
		||||
  previousItem: IItem,
 | 
			
		||||
  selectedItem: IItem,
 | 
			
		||||
  nextItem:IItem
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class TemporalItemLayer extends ItemLayer implements ITemporalItemLayer {
 | 
			
		||||
  public previousLayer:Layer = null;
 | 
			
		||||
  public selectedLayer:Layer = null;
 | 
			
		||||
  public nextLayer:Layer = null;
 | 
			
		||||
  public temporalItems:IListItem[] = [];
 | 
			
		||||
  public selectedItem:IListItem =null;
 | 
			
		||||
  public temporalItems:IItem[] = [];
 | 
			
		||||
  public previousItem:IItem = null;
 | 
			
		||||
  public selectedItem:IItem =null;
 | 
			
		||||
  public nextItem:IItem = null;
 | 
			
		||||
 | 
			
		||||
  constructor(item:IItem) {
 | 
			
		||||
   super(item)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
import { tassign } from 'tassign';
 | 
			
		||||
import { IItem,Item } from '@farmmaps/common';
 | 
			
		||||
import { IItemLayer,ItemLayer,TemporalItemLayer} from '../models/item.layer';
 | 
			
		||||
import { IItemLayer,ItemLayer,ITemporalItemLayer,TemporalItemLayer} from '../models/item.layer';
 | 
			
		||||
import { IMapState} from '../models/map.state';
 | 
			
		||||
import { IQueryState} from '@farmmaps/common';
 | 
			
		||||
import { IPeriodState} from '../models/period.state';
 | 
			
		||||
@@ -177,6 +177,15 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
 | 
			
		||||
        queryState: tassign(state.queryState, {itemCode:a.item ? a.item.code:null})
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    case mapActions.SELECTTEMPORALITEMSSUCCESS:{
 | 
			
		||||
      let a = action as mapActions.SelectTemporalItemsSuccess;
 | 
			
		||||
      let selectedItemLayer=tassign(state.selectedItemLayer) as TemporalItemLayer;
 | 
			
		||||
      selectedItemLayer.temporalItems = a.temporalItems;
 | 
			
		||||
      selectedItemLayer.selectedItem = a.temporalItems.length>0?a.temporalItems[a.temporalItems.length-1]:null;
 | 
			
		||||
      selectedItemLayer.previousItem = a.temporalItems.length>1?a.temporalItems[a.temporalItems.length-2]:null;
 | 
			
		||||
      selectedItemLayer.nextItem = null;
 | 
			
		||||
      return tassign(state,{selectedItemLayer:tassign(state.selectedItemLayer,selectedItemLayer as ItemLayer)});
 | 
			
		||||
    }
 | 
			
		||||
    case mapActions.STARTSEARCH: {
 | 
			
		||||
      let a = action as mapActions.StartSearch;
 | 
			
		||||
      return tassign(state, {
 | 
			
		||||
 
 | 
			
		||||
@@ -77,7 +77,9 @@ export class ItemService {
 | 
			
		||||
 | 
			
		||||
  getChildItemList(parentcode: string, itemType: string, dataFilter?: any, level: number = 1, deep: boolean = true): Observable<IItem[]> {
 | 
			
		||||
    var params = new HttpParams();
 | 
			
		||||
    params = params.append("it", itemType);
 | 
			
		||||
    if(itemType != null) {
 | 
			
		||||
      params = params.append("it", itemType);
 | 
			
		||||
    }
 | 
			
		||||
    if (dataFilter != null) {
 | 
			
		||||
      params = params.append("df", JSON.stringify(dataFilter));
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user