angular-cesium
Version:
Angular library for working with Cesium.
56 lines • 6.51 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { CesiumService } from '../cesium/cesium.service';
import { Injectable } from '@angular/core';
var MapLayersService = /** @class */ (function () {
function MapLayersService(cesiumService) {
this.cesiumService = cesiumService;
this.layersDataSources = [];
}
MapLayersService.prototype.registerLayerDataSources = function (dataSources, zIndex) {
var _this = this;
dataSources.forEach(function (ds) {
ds.zIndex = zIndex;
_this.layersDataSources.push(ds);
});
};
MapLayersService.prototype.drawAllLayers = function () {
var _this = this;
this.layersDataSources.sort(function (a, b) { return a.zIndex - b.zIndex; });
this.layersDataSources.forEach(function (dataSource) {
_this.cesiumService.getViewer().dataSources.add(dataSource);
});
};
MapLayersService.prototype.updateAndRefresh = function (dataSources, newZIndex) {
var _this = this;
if (dataSources && dataSources.length) {
dataSources.forEach(function (ds) {
var index = _this.layersDataSources.indexOf(ds);
if (index !== -1) {
_this.layersDataSources[index].zIndex = newZIndex;
}
});
this.cesiumService.getViewer().dataSources.removeAll();
this.drawAllLayers();
}
};
MapLayersService.prototype.removeDataSources = function (dataSources) {
var _this = this;
dataSources.forEach(function (ds) {
var index = _this.layersDataSources.indexOf(ds);
if (index !== -1) {
_this.layersDataSources.splice(index, 1);
_this.cesiumService.getViewer().dataSources.remove(ds, true);
}
});
};
MapLayersService.ctorParameters = function () { return [
{ type: CesiumService }
]; };
MapLayersService = __decorate([
Injectable(),
__metadata("design:paramtypes", [CesiumService])
], MapLayersService);
return MapLayersService;
}());
export { MapLayersService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWxheWVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1jZXNpdW0vIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci1jZXNpdW0vc2VydmljZXMvbWFwLWxheWVycy9tYXAtbGF5ZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDO0lBSUUsMEJBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRnhDLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztJQUl0QyxDQUFDO0lBRUQsbURBQXdCLEdBQXhCLFVBQXlCLFdBQWtCLEVBQUUsTUFBYztRQUEzRCxpQkFLQztRQUpDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBQSxFQUFFO1lBQ3BCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsd0NBQWEsR0FBYjtRQUFBLGlCQU1DO1FBTEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQW5CLENBQW1CLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQUMsVUFBVTtZQUN4QyxLQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMkNBQWdCLEdBQWhCLFVBQWlCLFdBQWtCLEVBQUUsU0FBaUI7UUFBdEQsaUJBWUM7UUFYQyxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3JDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBQyxFQUFFO2dCQUNyQixJQUFNLEtBQUssR0FBRyxLQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDaEIsS0FBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7aUJBQ2xEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsNENBQWlCLEdBQWpCLFVBQWtCLFdBQWtCO1FBQXBDLGlCQVFDO1FBUEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEVBQUU7WUFDcEIsSUFBTSxLQUFLLEdBQUcsS0FBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDaEIsS0FBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLEtBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDN0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2dCQXpDa0MsYUFBYTs7SUFKckMsZ0JBQWdCO1FBRDVCLFVBQVUsRUFBRTt5Q0FLd0IsYUFBYTtPQUpyQyxnQkFBZ0IsQ0E4QzVCO0lBQUQsdUJBQUM7Q0FBQSxBQTlDRCxJQThDQztTQTlDWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZXNpdW1TZXJ2aWNlIH0gZnJvbSAnLi4vY2VzaXVtL2Nlc2l1bS5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1hcExheWVyc1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgbGF5ZXJzRGF0YVNvdXJjZXM6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZXNpdW1TZXJ2aWNlOiBDZXNpdW1TZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIHJlZ2lzdGVyTGF5ZXJEYXRhU291cmNlcyhkYXRhU291cmNlczogYW55W10sIHpJbmRleDogbnVtYmVyKSB7XG4gICAgZGF0YVNvdXJjZXMuZm9yRWFjaChkcyA9PiB7XG4gICAgICBkcy56SW5kZXggPSB6SW5kZXg7XG4gICAgICB0aGlzLmxheWVyc0RhdGFTb3VyY2VzLnB1c2goZHMpO1xuICAgIH0pO1xuICB9XG5cbiAgZHJhd0FsbExheWVycygpIHtcbiAgICB0aGlzLmxheWVyc0RhdGFTb3VyY2VzLnNvcnQoKGEsIGIpID0+IGEuekluZGV4IC0gYi56SW5kZXgpO1xuXG4gICAgdGhpcy5sYXllcnNEYXRhU291cmNlcy5mb3JFYWNoKChkYXRhU291cmNlKSA9PiB7XG4gICAgICB0aGlzLmNlc2l1bVNlcnZpY2UuZ2V0Vmlld2VyKCkuZGF0YVNvdXJjZXMuYWRkKGRhdGFTb3VyY2UpO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlQW5kUmVmcmVzaChkYXRhU291cmNlczogYW55W10sIG5ld1pJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGRhdGFTb3VyY2VzICYmIGRhdGFTb3VyY2VzLmxlbmd0aCkge1xuICAgICAgZGF0YVNvdXJjZXMuZm9yRWFjaCgoZHMpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxheWVyc0RhdGFTb3VyY2VzLmluZGV4T2YoZHMpO1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5sYXllcnNEYXRhU291cmNlc1tpbmRleF0uekluZGV4ID0gbmV3WkluZGV4O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5jZXNpdW1TZXJ2aWNlLmdldFZpZXdlcigpLmRhdGFTb3VyY2VzLnJlbW92ZUFsbCgpO1xuICAgICAgdGhpcy5kcmF3QWxsTGF5ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlRGF0YVNvdXJjZXMoZGF0YVNvdXJjZXM6IGFueVtdKSB7XG4gICAgZGF0YVNvdXJjZXMuZm9yRWFjaChkcyA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMubGF5ZXJzRGF0YVNvdXJjZXMuaW5kZXhPZihkcyk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMubGF5ZXJzRGF0YVNvdXJjZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgdGhpcy5jZXNpdW1TZXJ2aWNlLmdldFZpZXdlcigpLmRhdGFTb3VyY2VzLnJlbW92ZShkcywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==