@eliorar/angular-cesium
Version:
Angular library for working with Cesium.
68 lines • 7.43 kB
JavaScript
import { Component, Input } from '@angular/core';
import { EntityOnMapComponent } from '../../services/entity-on-map/entity-on-map.component';
import * as i0 from "@angular/core";
import * as i1 from "../../services/drawers/arc-drawer/arc-drawer.service";
import * as i2 from "../../services/map-layers/map-layers.service";
/**
* This is an implementation of an arc.
* The element must be a child of ac-map element.
* An arc is not natively implemented in cesium.
*
* __Usage :__
* ```
* <ac-arc-desc geometryProps="{
* center: arc.center,
* angle: arc.angle,
* delta: arc.delta,
* radius: arc.radius
* }"
* instanceProps="{
* attributes: arc.attributes
* }"
* primitiveProps="{
* appearance: arc.appearance
* }">
* </ac-arc-desc>
* ```
*/
export class AcArcComponent extends EntityOnMapComponent {
constructor(arcDrawer, mapLayers) {
super(arcDrawer, mapLayers);
}
updateOnMap() {
if (this.selfPrimitiveIsDraw) {
this.removeFromMap();
this.drawOnMap();
}
}
drawOnMap() {
this.selfPrimitiveIsDraw = true;
return this.selfPrimitive = this._drawer.add(this.geometryProps, this.instanceProps, this.primitiveProps);
}
ngOnChanges(changes) {
const geometryProps = changes['geometryProps'];
const instanceProps = changes['instanceProps'];
const primitiveProps = changes['primitiveProps'];
if (geometryProps.currentValue !== geometryProps.previousValue ||
instanceProps.currentValue !== instanceProps.previousValue ||
primitiveProps.currentValue !== primitiveProps.previousValue) {
this.updateOnMap();
}
}
}
AcArcComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AcArcComponent, deps: [{ token: i1.ArcDrawerService }, { token: i2.MapLayersService }], target: i0.ɵɵFactoryTarget.Component });
AcArcComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: AcArcComponent, selector: "ac-arc", inputs: { geometryProps: "geometryProps", instanceProps: "instanceProps", primitiveProps: "primitiveProps" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AcArcComponent, decorators: [{
type: Component,
args: [{
selector: 'ac-arc',
template: '',
}]
}], ctorParameters: function () { return [{ type: i1.ArcDrawerService }, { type: i2.MapLayersService }]; }, propDecorators: { geometryProps: [{
type: Input
}], instanceProps: [{
type: Input
}], primitiveProps: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWMtYXJjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2VzaXVtL3NyYy9saWIvYW5ndWxhci1jZXNpdW0vY29tcG9uZW50cy9hYy1hcmMvYWMtYXJjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0RBQXNELENBQUM7Ozs7QUFLMUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQU1ILE1BQU0sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBU3RELFlBQVksU0FBMkIsRUFBRSxTQUEyQjtRQUNsRSxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0MsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakQsSUFBSSxhQUFhLENBQUMsWUFBWSxLQUFLLGFBQWEsQ0FBQyxhQUFhO1lBQzVELGFBQWEsQ0FBQyxZQUFZLEtBQUssYUFBYSxDQUFDLGFBQWE7WUFDMUQsY0FBYyxDQUFDLFlBQVksS0FBSyxjQUFjLENBQUMsYUFBYSxFQUFFO1lBQzlELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7OzJHQWxDVSxjQUFjOytGQUFkLGNBQWMsd01BRmYsRUFBRTsyRkFFRCxjQUFjO2tCQUoxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUUsRUFBRTtpQkFDYjtzSUFJQyxhQUFhO3NCQURaLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RW50aXR5T25NYXBDb21wb25lbnR9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VudGl0eS1vbi1tYXAvZW50aXR5LW9uLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHtBcmNEcmF3ZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcmF3ZXJzL2FyYy1kcmF3ZXIvYXJjLWRyYXdlci5zZXJ2aWNlJztcbmltcG9ydCB7TWFwTGF5ZXJzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFwLWxheWVycy9tYXAtbGF5ZXJzLnNlcnZpY2UnO1xuXG5cbi8qKlxuICogIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYW4gYXJjLlxuICogIFRoZSBlbGVtZW50IG11c3QgYmUgYSBjaGlsZCBvZiBhYy1tYXAgZWxlbWVudC5cbiAqICBBbiBhcmMgaXMgbm90IG5hdGl2ZWx5IGltcGxlbWVudGVkIGluIGNlc2l1bS5cbiAqXG4gKiAgX19Vc2FnZSA6X19cbiAqICBgYGBcbiAqICAgIDxhYy1hcmMtZGVzYyBnZW9tZXRyeVByb3BzPVwie1xuICogICAgICAgICAgY2VudGVyOiBhcmMuY2VudGVyLFxuICogICAgICAgICAgYW5nbGU6IGFyYy5hbmdsZSxcbiAqICAgICAgICAgIGRlbHRhOiBhcmMuZGVsdGEsXG4gKiAgICAgICAgICByYWRpdXM6IGFyYy5yYWRpdXNcbiAqICAgICAgIH1cIlxuICogICAgICAgaW5zdGFuY2VQcm9wcz1cIntcbiAqICAgICAgICAgIGF0dHJpYnV0ZXM6IGFyYy5hdHRyaWJ1dGVzXG4gKiAgICAgICB9XCJcbiAqICAgICAgIHByaW1pdGl2ZVByb3BzPVwie1xuICogICAgICAgICAgYXBwZWFyYW5jZTogYXJjLmFwcGVhcmFuY2VcbiAqICAgICAgIH1cIj5cbiAqICAgIDwvYWMtYXJjLWRlc2M+XG4gKiAgICBgYGBcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYy1hcmMnLFxuICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGNsYXNzIEFjQXJjQ29tcG9uZW50IGV4dGVuZHMgRW50aXR5T25NYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpXG4gIGdlb21ldHJ5UHJvcHM6IGFueTtcbiAgQElucHV0KClcbiAgaW5zdGFuY2VQcm9wczogYW55O1xuICBASW5wdXQoKVxuICBwcmltaXRpdmVQcm9wczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGFyY0RyYXdlcjogQXJjRHJhd2VyU2VydmljZSwgbWFwTGF5ZXJzOiBNYXBMYXllcnNTZXJ2aWNlKSB7XG4gICAgc3VwZXIoYXJjRHJhd2VyLCBtYXBMYXllcnMpO1xuICB9XG5cbiAgdXBkYXRlT25NYXAoKSB7XG4gICAgaWYgKHRoaXMuc2VsZlByaW1pdGl2ZUlzRHJhdykge1xuICAgICAgdGhpcy5yZW1vdmVGcm9tTWFwKCk7XG4gICAgICB0aGlzLmRyYXdPbk1hcCgpO1xuICAgIH1cbiAgfVxuXG4gIGRyYXdPbk1hcCgpIHtcbiAgICB0aGlzLnNlbGZQcmltaXRpdmVJc0RyYXcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLnNlbGZQcmltaXRpdmUgPSB0aGlzLl9kcmF3ZXIuYWRkKHRoaXMuZ2VvbWV0cnlQcm9wcywgdGhpcy5pbnN0YW5jZVByb3BzLCB0aGlzLnByaW1pdGl2ZVByb3BzKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBnZW9tZXRyeVByb3BzID0gY2hhbmdlc1snZ2VvbWV0cnlQcm9wcyddO1xuICAgIGNvbnN0IGluc3RhbmNlUHJvcHMgPSBjaGFuZ2VzWydpbnN0YW5jZVByb3BzJ107XG4gICAgY29uc3QgcHJpbWl0aXZlUHJvcHMgPSBjaGFuZ2VzWydwcmltaXRpdmVQcm9wcyddO1xuICAgIGlmIChnZW9tZXRyeVByb3BzLmN1cnJlbnRWYWx1ZSAhPT0gZ2VvbWV0cnlQcm9wcy5wcmV2aW91c1ZhbHVlIHx8XG4gICAgICBpbnN0YW5jZVByb3BzLmN1cnJlbnRWYWx1ZSAhPT0gaW5zdGFuY2VQcm9wcy5wcmV2aW91c1ZhbHVlIHx8XG4gICAgICBwcmltaXRpdmVQcm9wcy5jdXJyZW50VmFsdWUgIT09IHByaW1pdGl2ZVByb3BzLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIHRoaXMudXBkYXRlT25NYXAoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==