UNPKG

@dlr-eoc/map-cesium

Version:

This is a angular module that exports a cesium component that can handle UKIS layers. See @dlr-eoc/services-layers for supported types.

165 lines (161 loc) 7.24 kB
import { LayersService, TGeoExtent, TFiltertypesUncap, TFiltertypes, Layer, CustomLayer } from '@dlr-eoc/services-layers'; import * as i0 from '@angular/core'; import { OnInit, AfterViewInit, OnDestroy, ElementRef } from '@angular/core'; import { MapStateService, IMapCenter } from '@dlr-eoc/services-map-state'; import { Subscription, Subject } from 'rxjs'; import { Viewer } from '@cesium/widgets'; import { JulianDate, Color, ImageryLayer, DataSource } from '@cesium/engine'; interface ICesiumControls { timeline?: boolean; animation?: boolean; sceneModePicker?: boolean; homeButton?: boolean; baseLayerPicker?: boolean; geocoder?: boolean; navigationHelpButton?: boolean; navigationInstructionsInitiallyVisible?: boolean; fullscreenButton?: boolean; scene3DOnly?: boolean; infoBox?: boolean; selectionIndicator?: boolean; enablePopups?: boolean; ionAccessToken?: string; GoogleMapsApiKey?: string; globeColor?: string; } declare class MapCesiumComponent implements OnInit, AfterViewInit, OnDestroy { private mapSvc; mapDivView: ElementRef; creditDivView: ElementRef; twoDlayersSvc: LayersService; threeDlayersSvc: LayersService; mapStateSvc: MapStateService; controls: ICesiumControls; timeInterval?: string[]; startTime?: string | null; viewer: Viewer; subs: Subscription[]; mapCreated: Subject<boolean>; initState: boolean; constructor(mapSvc: MapCesiumService); ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; private initMap; private subscribeToLayers; private subscribeToMapState; private setMapState; private calcMapStateFromCamera; private subscribeToMapEvents; private addUpdateBaseLayers; private add2DBaseLayers; private update2DBaseLayers; private addUpdateTerrainLayers; private addTerrainLayers; private addUpdate2DLayers; private addLayers; private updateLayers; private addUpdate3DLayers; private add3DLayers; private update3DLayers; closeCesiumPopup(): void; static ɵfac: i0.ɵɵFactoryDeclaration<MapCesiumComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<MapCesiumComponent, "ukis-map-cesium", never, { "twoDlayersSvc": { "alias": "twoDlayersSvc"; "required": false; }; "threeDlayersSvc": { "alias": "threeDlayersSvc"; "required": false; }; "mapStateSvc": { "alias": "mapState"; "required": false; }; "controls": { "alias": "controls"; "required": false; }; "timeInterval": { "alias": "timeInterval"; "required": false; }; "startTime": { "alias": "startTime"; "required": false; }; }, {}, never, never, true, never>; } declare type Tgroupfiltertype = TFiltertypesUncap | TFiltertypes; declare class MapCesiumService { viewer: Viewer; private baseLayerImageryGroup; private standardLayerImageryGroup; private overlayLayerImageryGroup; private baseLayerDataSourceGroup; private standardLayerDataSourceGroup; private overlayLayerDataSourceGroup; private dataSourceOpacity; private terrainLayerGroup; private tilesetLayerGroup; EPSG: string; cesiumCurrentTime: JulianDate; private cesiumTimeInterval; private viewerOptions; defaultGlobeColor: Color; constructor(); setControls(newControls: ICesiumControls): void; createMap(target: HTMLElement): { viewer: Viewer; }; setZoom(zoom: number, notifier?: 'map' | 'user'): void; getZoom(): number; setCenter(center: IMapCenter): void; getCenter(): IMapCenter; setExtent(extent: TGeoExtent, geographic?: boolean, fitOptions?: any): void; getCurrentExtent(): TGeoExtent; /** * Set initial oblique view, see https://cesium.com/learn/cesiumjs/ref-doc/Camera.html * subtract 90°, to get the same behavior as in openlayers * options of viewer.camera.flyTo` * * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L1457 * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L3540-L3541 */ setViewAngle(viewAngle: number, options?: any): void; /** * @param options of viewer.camera.flyTo */ setNadirViewAngle(options?: any): void; getViewAngle(): number; /** * subtract rotation degree from 360° to get the same behavior as in openlayers * options of viewer.camera.flyTo` * * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L3424 * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L1456 */ setRotation(rotation: number, options?: any): void; getRotation(): number; getAll2DLayersSize(filtertype: Tgroupfiltertype): number; get2DImageryLayersSize(filtertype: Tgroupfiltertype): number; getDataSourceLayersSize(filtertype: Tgroupfiltertype): number; getVisible2DLayersSize(filtertype: Tgroupfiltertype): number; get3DLayersSize(filtertype: Tgroupfiltertype): number; getVisible3DLayersSize(filtertype: Tgroupfiltertype): number; set2DUkisLayers(layers: Array<Layer>, filtertype: Tgroupfiltertype): void; set3DUkisLayers(layers: Array<Layer>, filtertype: Tgroupfiltertype): void; private create_2D_layer; private create_3D_layer; private create_xyz_layer; private create_wms_layer; private create_wmts_layer; private create_tms_layer; private create_dataSource_layer; private create_geojson_layer; private create_kml_layer; getLayerById(id: string, filtertype: Tgroupfiltertype): ImageryLayer | DataSource | undefined; removeAll2DLayers(): void; remove2DLayers(filtertype: Tgroupfiltertype): void; remove2DLayer(layerId: string[], filtertype: Tgroupfiltertype): void; removeAll3DLayers(): void; remove3DLayers(filtertype: Tgroupfiltertype): void; remove3DLayer(layerId: string[], filtertype: Tgroupfiltertype): void; update2DLayerOpacity(layers: Layer[], filtertype: Tgroupfiltertype): void; update2DLayerVisibility(layers: Layer[], filtertype: Tgroupfiltertype): void; update2DLayerZIndex(layers: Layer[], filtertype: Tgroupfiltertype): void; updateDataSourceZIndex(layers: Layer[], filtertype: Tgroupfiltertype): void; setTerrain(terrainLayer: CustomLayer): void; setDefaultTerrain(): void; removeTerrain(): void; private create_3Dtileset_layer; private dataCallback; update3DLayerVisibility(layers: Layer[], filtertype: Tgroupfiltertype): void; update3DLayerOpacity(layers: Layer[], filtertype: Tgroupfiltertype): void; initTime(startTime: string): void; updateTime(newTime: string): void; setTimeInterval(times: string[]): void; addIonAccessToken(token: string): void; addGoogleMapsApiKey(key: string): void; destroyLayerGrpoups(): void; static ɵfac: i0.ɵɵFactoryDeclaration<MapCesiumService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<MapCesiumService>; } export { MapCesiumComponent, MapCesiumService }; export type { ICesiumControls };