UNPKG

@eliorar/angular-cesium

Version:

Angular library for working with Cesium.

57 lines 6.77 kB
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"; /** * 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) { this.mapContainer = mapContainer; 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; } getMapContainer() { return this.mapContainer; } } CesiumService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CesiumService, deps: [{ token: i0.NgZone }, { token: i1.ViewerFactory }, { token: i2.ViewerConfiguration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); CesiumService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CesiumService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CesiumService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ViewerFactory }, { type: i2.ViewerConfiguration, decorators: [{ type: Optional }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VzaXVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNlc2l1bS9zcmMvbGliL2FuZ3VsYXItY2VzaXVtL3NlcnZpY2VzL2Nlc2l1bS9jZXNpdW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFVLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQUkzRDs7R0FFRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQW9CLE1BQWMsRUFBVSxhQUE0QixFQUFzQixtQkFBd0M7UUFBbEgsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQXNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDdEksQ0FBQztJQUVELElBQUksQ0FBQyxZQUF5QjtRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFM0UsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BHLElBQUksT0FBTyxjQUFjLEtBQUssVUFBVSxFQUFFO2dCQUN4QyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBMkIsQ0FBQztJQUN2RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDOzswR0E5Q1UsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQUtrRSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBOZ1pvbmUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Vmlld2VyRmFjdG9yeX0gZnJvbSAnLi4vdmlld2VyLWZhY3Rvcnkvdmlld2VyLWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdlckNvbmZpZ3VyYXRpb259IGZyb20gJy4uL3ZpZXdlci1jb25maWd1cmF0aW9uL3ZpZXdlci1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuXG4vKipcbiAqICBTZXJ2aWNlIHRoYXQgaW5pdGlhbGl6ZSBjZXNpdW0gdmlld2VyIGFuZCBleHBvc2UgY2VzaXVtIHZpZXdlciBhbmQgc2NlbmUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDZXNpdW1TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjZXNpdW1WaWV3ZXI6IGFueTtcbiAgcHJpdmF0ZSBtYXBDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgdmlld2VyRmFjdG9yeTogVmlld2VyRmFjdG9yeSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSB2aWV3ZXJDb25maWd1cmF0aW9uOiBWaWV3ZXJDb25maWd1cmF0aW9uKSB7XG4gIH1cblxuICBpbml0KG1hcENvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLm1hcENvbnRhaW5lciA9IG1hcENvbnRhaW5lcjtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy52aWV3ZXJDb25maWd1cmF0aW9uID8gdGhpcy52aWV3ZXJDb25maWd1cmF0aW9uLmdldE5leHRWaWV3ZXJPcHRpb25zKCkgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmNlc2l1bVZpZXdlciA9IHRoaXMudmlld2VyRmFjdG9yeS5jcmVhdGVWaWV3ZXIobWFwQ29udGFpbmVyLCBvcHRpb25zKTtcblxuICAgICAgY29uc3Qgdmlld2VyTW9kaWZpZXIgPSB0aGlzLnZpZXdlckNvbmZpZ3VyYXRpb24gJiYgdGhpcy52aWV3ZXJDb25maWd1cmF0aW9uLmdldE5leHRWaWV3ZXJNb2RpZmllcigpO1xuICAgICAgaWYgKHR5cGVvZiB2aWV3ZXJNb2RpZmllciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB2aWV3ZXJNb2RpZmllcih0aGlzLmNlc2l1bVZpZXdlcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGh0dHBzOi8vY2VzaXVtanMub3JnL0Nlc2l1bS9CdWlsZC9Eb2N1bWVudGF0aW9uL1ZpZXdlci5odG1sP2NsYXNzRmlsdGVyPXZpZXdlXG4gICAqIEByZXR1cm5zIGNlc2l1bVZpZXdlclxuICAgKi9cbiAgZ2V0Vmlld2VyKCkge1xuICAgIHJldHVybiB0aGlzLmNlc2l1bVZpZXdlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaHR0cHM6Ly9jZXNpdW1qcy5vcmcvQ2VzaXVtL0J1aWxkL0RvY3VtZW50YXRpb24vU2NlbmUuaHRtbD9jbGFzc0ZpbHRlcj1zY2VuZVxuICAgKiBAcmV0dXJucyBjZXNpdW0gc2NlbmVcbiAgICovXG4gIGdldFNjZW5lKCkge1xuICAgIHJldHVybiB0aGlzLmNlc2l1bVZpZXdlci5zY2VuZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0NhbnZhc19BUElcbiAgICogQHJldHVybnMgY2VzaXVtIGNhbnZhc1xuICAgKi9cbiAgZ2V0Q2FudmFzKCk6IEhUTUxDYW52YXNFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5jZXNpdW1WaWV3ZXIuY2FudmFzIGFzIEhUTUxDYW52YXNFbGVtZW50O1xuICB9XG5cbiAgZ2V0TWFwQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5tYXBDb250YWluZXI7XG4gIH1cbn1cbiJdfQ==