@greenmice/ngx-cesium
Version:
Angular library for working with Cesium.
58 lines • 6.95 kB
JavaScript
import { Injectable, Optional } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../viewer-factory/viewer-factory.service";
import * as i2 from "../viewer-configuration/viewer-configuration.service";
// import { AcMapComponent } from '../../components/ac-map/ac-map.component';
/**
* Service that initialize cesium viewer and expose cesium viewer and scene.
*/
export class CesiumService {
constructor(ngZone, viewerFactory, viewerConfiguration) {
this.ngZone = ngZone;
this.viewerFactory = viewerFactory;
this.viewerConfiguration = viewerConfiguration;
}
init(mapContainer, map) {
this.map = map;
this.ngZone.runOutsideAngular(() => {
const options = this.viewerConfiguration ? this.viewerConfiguration.getNextViewerOptions() : undefined;
this.cesiumViewer = this.viewerFactory.createViewer(mapContainer, options);
const viewerModifier = this.viewerConfiguration && this.viewerConfiguration.getNextViewerModifier();
if (typeof viewerModifier === 'function') {
viewerModifier(this.cesiumViewer);
}
});
}
/**
* For more information see https://cesiumjs.org/Cesium/Build/Documentation/Viewer.html?classFilter=viewe
* @returns cesiumViewer
*/
getViewer() {
return this.cesiumViewer;
}
/**
* For more information see https://cesiumjs.org/Cesium/Build/Documentation/Scene.html?classFilter=scene
* @returns cesium scene
*/
getScene() {
return this.cesiumViewer.scene;
}
/**
* For more information see https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API
* @returns cesium canvas
*/
getCanvas() {
return this.cesiumViewer.canvas;
}
getMap() {
return this.map;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CesiumService, deps: [{ token: i0.NgZone }, { token: i1.ViewerFactory }, { token: i2.ViewerConfiguration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CesiumService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CesiumService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.ViewerFactory }, { type: i2.ViewerConfiguration, decorators: [{
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VzaXVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNlc2l1bS9zcmMvbGliL2FuZ3VsYXItY2VzaXVtL3NlcnZpY2VzL2Nlc2l1bS9jZXNpdW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUc3RCw2RUFBNkU7QUFFN0U7O0dBRUc7QUFFSCxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUFvQixNQUFjLEVBQVUsYUFBNEIsRUFBc0IsbUJBQXdDO1FBQWxILFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFzQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQ3RJLENBQUM7SUFFRCxJQUFJLENBQUMsWUFBeUIsRUFBRSxHQUFRO1FBQ3RDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRTNFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRyxJQUFJLE9BQU8sY0FBYyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUN6QyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUEyQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7OEdBL0NVLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVTs7MEJBTWtFLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3ZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vdmlld2VyLWNvbmZpZ3VyYXRpb24vdmlld2VyLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3ZXJGYWN0b3J5IH0gZnJvbSAnLi4vdmlld2VyLWZhY3Rvcnkvdmlld2VyLWZhY3Rvcnkuc2VydmljZSc7XG4vLyBpbXBvcnQgeyBBY01hcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYWMtbWFwL2FjLW1hcC5jb21wb25lbnQnO1xuXG4vKipcbiAqICBTZXJ2aWNlIHRoYXQgaW5pdGlhbGl6ZSBjZXNpdW0gdmlld2VyIGFuZCBleHBvc2UgY2VzaXVtIHZpZXdlciBhbmQgc2NlbmUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDZXNpdW1TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjZXNpdW1WaWV3ZXI6IGFueTtcbiAgLy8gRklYTUUgcHJpdmF0ZSBtYXA6IEFjTWFwQ29tcG9uZW50O1xuICBwcml2YXRlIG1hcDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgdmlld2VyRmFjdG9yeTogVmlld2VyRmFjdG9yeSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSB2aWV3ZXJDb25maWd1cmF0aW9uOiBWaWV3ZXJDb25maWd1cmF0aW9uKSB7XG4gIH1cblxuICBpbml0KG1hcENvbnRhaW5lcjogSFRNTEVsZW1lbnQsIG1hcDogYW55KSB7XG4gICAgdGhpcy5tYXAgPSBtYXA7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMudmlld2VyQ29uZmlndXJhdGlvbiA/IHRoaXMudmlld2VyQ29uZmlndXJhdGlvbi5nZXROZXh0Vmlld2VyT3B0aW9ucygpIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5jZXNpdW1WaWV3ZXIgPSB0aGlzLnZpZXdlckZhY3RvcnkuY3JlYXRlVmlld2VyKG1hcENvbnRhaW5lciwgb3B0aW9ucyk7XG5cbiAgICAgIGNvbnN0IHZpZXdlck1vZGlmaWVyID0gdGhpcy52aWV3ZXJDb25maWd1cmF0aW9uICYmIHRoaXMudmlld2VyQ29uZmlndXJhdGlvbi5nZXROZXh0Vmlld2VyTW9kaWZpZXIoKTtcbiAgICAgIGlmICh0eXBlb2Ygdmlld2VyTW9kaWZpZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdmlld2VyTW9kaWZpZXIodGhpcy5jZXNpdW1WaWV3ZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBodHRwczovL2Nlc2l1bWpzLm9yZy9DZXNpdW0vQnVpbGQvRG9jdW1lbnRhdGlvbi9WaWV3ZXIuaHRtbD9jbGFzc0ZpbHRlcj12aWV3ZVxuICAgKiBAcmV0dXJucyBjZXNpdW1WaWV3ZXJcbiAgICovXG4gIGdldFZpZXdlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jZXNpdW1WaWV3ZXI7XG4gIH1cblxuICAvKipcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGh0dHBzOi8vY2VzaXVtanMub3JnL0Nlc2l1bS9CdWlsZC9Eb2N1bWVudGF0aW9uL1NjZW5lLmh0bWw/Y2xhc3NGaWx0ZXI9c2NlbmVcbiAgICogQHJldHVybnMgY2VzaXVtIHNjZW5lXG4gICAqL1xuICBnZXRTY2VuZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jZXNpdW1WaWV3ZXIuc2NlbmU7XG4gIH1cblxuICAvKipcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9DYW52YXNfQVBJXG4gICAqIEByZXR1cm5zIGNlc2l1bSBjYW52YXNcbiAgICovXG4gIGdldENhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY2VzaXVtVmlld2VyLmNhbnZhcyBhcyBIVE1MQ2FudmFzRWxlbWVudDtcbiAgfVxuXG4gIGdldE1hcCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1hcDtcbiAgfVxufVxuIl19