@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
TypeScript
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 };