@eliorar/angular-cesium
Version:
Angular library for working with Cesium.
50 lines • 6.47 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../cesium/cesium.service";
export class MapLayersService {
constructor(cesiumService) {
this.cesiumService = cesiumService;
this.layersDataSources = [];
}
registerLayerDataSources(dataSources, zIndex) {
dataSources.forEach(ds => {
ds.zIndex = zIndex;
this.layersDataSources.push(ds);
});
}
drawAllLayers() {
this.layersDataSources.sort((a, b) => a.zIndex - b.zIndex);
this.layersDataSources.forEach((dataSource) => {
this.cesiumService.getViewer().dataSources.add(dataSource);
});
}
updateAndRefresh(dataSources, newZIndex) {
if (dataSources && dataSources.length) {
dataSources.forEach((ds) => {
const index = this.layersDataSources.indexOf(ds);
if (index !== -1) {
this.layersDataSources[index].zIndex = newZIndex;
}
});
this.cesiumService.getViewer().dataSources.removeAll();
this.drawAllLayers();
}
}
removeDataSources(dataSources) {
if (dataSources != null) {
dataSources.forEach(ds => {
const index = this.layersDataSources.indexOf(ds);
if (index !== -1) {
this.layersDataSources.splice(index, 1);
this.cesiumService.getViewer().dataSources.remove(ds, true);
}
});
}
}
}
MapLayersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MapLayersService, deps: [{ token: i1.CesiumService }], target: i0.ɵɵFactoryTarget.Injectable });
MapLayersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MapLayersService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MapLayersService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.CesiumService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWxheWVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jZXNpdW0vc3JjL2xpYi9hbmd1bGFyLWNlc2l1bS9zZXJ2aWNlcy9tYXAtbGF5ZXJzL21hcC1sYXllcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFHekMsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUZ4QyxzQkFBaUIsR0FBVSxFQUFFLENBQUM7SUFJdEMsQ0FBQztJQUVELHdCQUF3QixDQUFDLFdBQWtCLEVBQUUsTUFBYztRQUN6RCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLFdBQWtCLEVBQUUsU0FBaUI7UUFDcEQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUNyQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztpQkFDbEQ7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFrQjtRQUNsQyxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDdkIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakQsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUM3RDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs2R0EvQ1UsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2VzaXVtU2VydmljZX0gZnJvbSAnLi4vY2VzaXVtL2Nlc2l1bS5zZXJ2aWNlJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXBMYXllcnNTZXJ2aWNlIHtcblxuICBwcml2YXRlIGxheWVyc0RhdGFTb3VyY2VzOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2VzaXVtU2VydmljZTogQ2VzaXVtU2VydmljZSkge1xuXG4gIH1cblxuICByZWdpc3RlckxheWVyRGF0YVNvdXJjZXMoZGF0YVNvdXJjZXM6IGFueVtdLCB6SW5kZXg6IG51bWJlcikge1xuICAgIGRhdGFTb3VyY2VzLmZvckVhY2goZHMgPT4ge1xuICAgICAgZHMuekluZGV4ID0gekluZGV4O1xuICAgICAgdGhpcy5sYXllcnNEYXRhU291cmNlcy5wdXNoKGRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRyYXdBbGxMYXllcnMoKSB7XG4gICAgdGhpcy5sYXllcnNEYXRhU291cmNlcy5zb3J0KChhLCBiKSA9PiBhLnpJbmRleCAtIGIuekluZGV4KTtcblxuICAgIHRoaXMubGF5ZXJzRGF0YVNvdXJjZXMuZm9yRWFjaCgoZGF0YVNvdXJjZSkgPT4ge1xuICAgICAgdGhpcy5jZXNpdW1TZXJ2aWNlLmdldFZpZXdlcigpLmRhdGFTb3VyY2VzLmFkZChkYXRhU291cmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUFuZFJlZnJlc2goZGF0YVNvdXJjZXM6IGFueVtdLCBuZXdaSW5kZXg6IG51bWJlcikge1xuICAgIGlmIChkYXRhU291cmNlcyAmJiBkYXRhU291cmNlcy5sZW5ndGgpIHtcbiAgICAgIGRhdGFTb3VyY2VzLmZvckVhY2goKGRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5sYXllcnNEYXRhU291cmNlcy5pbmRleE9mKGRzKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMubGF5ZXJzRGF0YVNvdXJjZXNbaW5kZXhdLnpJbmRleCA9IG5ld1pJbmRleDtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY2VzaXVtU2VydmljZS5nZXRWaWV3ZXIoKS5kYXRhU291cmNlcy5yZW1vdmVBbGwoKTtcbiAgICAgIHRoaXMuZHJhd0FsbExheWVycygpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZURhdGFTb3VyY2VzKGRhdGFTb3VyY2VzOiBhbnlbXSkge1xuICAgIGlmIChkYXRhU291cmNlcyAhPSBudWxsKSB7XG4gICAgICBkYXRhU291cmNlcy5mb3JFYWNoKGRzID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxheWVyc0RhdGFTb3VyY2VzLmluZGV4T2YoZHMpO1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5sYXllcnNEYXRhU291cmNlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIHRoaXMuY2VzaXVtU2VydmljZS5nZXRWaWV3ZXIoKS5kYXRhU291cmNlcy5yZW1vdmUoZHMsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==