UNPKG

angular-cesium

Version:
55 lines 6.01 kB
import { Input, Directive } from '@angular/core'; import { BasicDrawerService } from '../drawers/basic-drawer/basic-drawer.service'; import { MapLayersService } from '../map-layers/map-layers.service'; /** * Extend this class to create drawing on map components. */ export class EntityOnMapComponent { constructor(_drawer, mapLayers) { this._drawer = _drawer; this.mapLayers = mapLayers; } ngOnInit() { this.selfPrimitiveIsDraw = false; const dataSources = this._drawer.init(); if (dataSources) { this.dataSources = dataSources; // this.mapLayers.registerLayerDataSources(dataSources, 0); } this.drawOnMap(); } ngOnChanges(changes) { const props = changes['props']; if (props.currentValue !== props.previousValue) { this.updateOnMap(); } } drawOnMap() { this.selfPrimitiveIsDraw = true; return this.selfPrimitive = this._drawer.add(this.props); } removeFromMap() { this.selfPrimitiveIsDraw = false; return this._drawer.remove(this.selfPrimitive); } updateOnMap() { if (this.selfPrimitiveIsDraw) { return this._drawer.update(this.selfPrimitive, this.props); } } ngOnDestroy() { this.mapLayers.removeDataSources(this.dataSources); this.removeFromMap(); } } EntityOnMapComponent.decorators = [ { type: Directive } ]; EntityOnMapComponent.ctorParameters = () => [ { type: BasicDrawerService }, { type: MapLayersService } ]; EntityOnMapComponent.propDecorators = { props: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW9uLW1hcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNlc2l1bS9zcmMvbGliL2FuZ3VsYXItY2VzaXVtL3NlcnZpY2VzL2VudGl0eS1vbi1tYXAvZW50aXR5LW9uLW1hcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBK0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUFzQixPQUEyQixFQUFVLFNBQTJCO1FBQWhFLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFDdEYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQiwyREFBMkQ7U0FDNUQ7UUFDRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQWhERixTQUFTOzs7WUFORCxrQkFBa0I7WUFDbEIsZ0JBQWdCOzs7b0JBT3RCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2ljRHJhd2VyU2VydmljZSB9IGZyb20gJy4uL2RyYXdlcnMvYmFzaWMtZHJhd2VyL2Jhc2ljLWRyYXdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFwTGF5ZXJzU2VydmljZSB9IGZyb20gJy4uL21hcC1sYXllcnMvbWFwLWxheWVycy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiAgRXh0ZW5kIHRoaXMgY2xhc3MgdG8gY3JlYXRlIGRyYXdpbmcgb24gbWFwIGNvbXBvbmVudHMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIEVudGl0eU9uTWFwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICBwcm9wczogYW55O1xyXG5cclxuICBwcm90ZWN0ZWQgc2VsZlByaW1pdGl2ZTogYW55O1xyXG4gIHByb3RlY3RlZCBzZWxmUHJpbWl0aXZlSXNEcmF3OiBib29sZWFuO1xyXG4gIHByb3RlY3RlZCBkYXRhU291cmNlczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RyYXdlcjogQmFzaWNEcmF3ZXJTZXJ2aWNlLCBwcml2YXRlIG1hcExheWVyczogTWFwTGF5ZXJzU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGZQcmltaXRpdmVJc0RyYXcgPSBmYWxzZTtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2VzID0gdGhpcy5fZHJhd2VyLmluaXQoKTtcclxuICAgIGlmIChkYXRhU291cmNlcykge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2VzID0gZGF0YVNvdXJjZXM7XHJcbiAgICAgIC8vIHRoaXMubWFwTGF5ZXJzLnJlZ2lzdGVyTGF5ZXJEYXRhU291cmNlcyhkYXRhU291cmNlcywgMCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRyYXdPbk1hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgcHJvcHMgPSBjaGFuZ2VzWydwcm9wcyddO1xyXG4gICAgaWYgKHByb3BzLmN1cnJlbnRWYWx1ZSAhPT0gcHJvcHMucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZU9uTWFwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcmF3T25NYXAoKSB7XHJcbiAgICB0aGlzLnNlbGZQcmltaXRpdmVJc0RyYXcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZlByaW1pdGl2ZSA9IHRoaXMuX2RyYXdlci5hZGQodGhpcy5wcm9wcyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVGcm9tTWFwKCkge1xyXG4gICAgdGhpcy5zZWxmUHJpbWl0aXZlSXNEcmF3ID0gZmFsc2U7XHJcbiAgICByZXR1cm4gdGhpcy5fZHJhd2VyLnJlbW92ZSh0aGlzLnNlbGZQcmltaXRpdmUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlT25NYXAoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxmUHJpbWl0aXZlSXNEcmF3KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kcmF3ZXIudXBkYXRlKHRoaXMuc2VsZlByaW1pdGl2ZSwgdGhpcy5wcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFwTGF5ZXJzLnJlbW92ZURhdGFTb3VyY2VzKHRoaXMuZGF0YVNvdXJjZXMpO1xyXG4gICAgdGhpcy5yZW1vdmVGcm9tTWFwKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==