angular-cesium
Version:
Angular library for working with Cesium.
31 lines • 4.36 kB
JavaScript
import { Injectable } from '@angular/core';
import { CesiumService } from '../../../cesium/cesium.service';
import { Checker } from '../../../../utils/checker';
import { EllipsePrimitive } from 'primitive-primitives';
import { PrimitivesDrawerService } from '../../primitives-drawer/primitives-drawer.service';
/**
* This drawer is responsible for creating the dynamic version of the ellipse component.
* We are using the primitive-primitives implementation of an ellipse. see: https://github.com/gotenxds/Primitive-primitives
* This allows us to change the position of the ellipses without creating a new primitive object
* as Cesium does not allow updating an ellipse.
*/
export class DynamicEllipseDrawerService extends PrimitivesDrawerService {
constructor(cesiumService) {
super(Cesium.PrimitiveCollection, cesiumService);
}
add(cesiumProps) {
Checker.throwIfAnyNotPresent(cesiumProps, ['center', 'semiMajorAxis', 'semiMinorAxis']);
return super.add(new EllipsePrimitive(cesiumProps));
}
update(ellipse, cesiumProps) {
ellipse.updateLocationData(cesiumProps);
return ellipse;
}
}
DynamicEllipseDrawerService.decorators = [
{ type: Injectable }
];
DynamicEllipseDrawerService.ctorParameters = () => [
{ type: CesiumService }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lbGxpcHNlLWRyYXdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jZXNpdW0vc3JjL2xpYi9hbmd1bGFyLWNlc2l1bS9zZXJ2aWNlcy9kcmF3ZXJzL3N0YXRpYy1keW5hbWljL2VsbGlwc2UtZHJhd2VyL2R5bmFtaWMtZWxsaXBzZS1kcmF3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFHNUY7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsdUJBQXVCO0lBQ3RFLFlBQVksYUFBNEI7UUFDdEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsR0FBRyxDQUFDLFdBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFFeEYsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQVksRUFBRSxXQUFnQjtRQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7O1lBaEJGLFVBQVU7OztZQVpGLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENlc2l1bVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jZXNpdW0vY2VzaXVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGVja2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvY2hlY2tlcic7XHJcbmltcG9ydCB7IEVsbGlwc2VQcmltaXRpdmUgfSBmcm9tICdwcmltaXRpdmUtcHJpbWl0aXZlcyc7XHJcbmltcG9ydCB7IFByaW1pdGl2ZXNEcmF3ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJpbWl0aXZlcy1kcmF3ZXIvcHJpbWl0aXZlcy1kcmF3ZXIuc2VydmljZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqICBUaGlzIGRyYXdlciBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIGR5bmFtaWMgdmVyc2lvbiBvZiB0aGUgZWxsaXBzZSBjb21wb25lbnQuXHJcbiAqICBXZSBhcmUgdXNpbmcgdGhlIHByaW1pdGl2ZS1wcmltaXRpdmVzIGltcGxlbWVudGF0aW9uIG9mIGFuIGVsbGlwc2UuIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2dvdGVueGRzL1ByaW1pdGl2ZS1wcmltaXRpdmVzXHJcbiAqICBUaGlzIGFsbG93cyB1cyB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBlbGxpcHNlcyB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IHByaW1pdGl2ZSBvYmplY3RcclxuICogIGFzIENlc2l1bSBkb2VzIG5vdCBhbGxvdyB1cGRhdGluZyBhbiBlbGxpcHNlLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0VsbGlwc2VEcmF3ZXJTZXJ2aWNlIGV4dGVuZHMgUHJpbWl0aXZlc0RyYXdlclNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKGNlc2l1bVNlcnZpY2U6IENlc2l1bVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKENlc2l1bS5QcmltaXRpdmVDb2xsZWN0aW9uLCBjZXNpdW1TZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGFkZChjZXNpdW1Qcm9wczogYW55KTogYW55IHtcclxuICAgIENoZWNrZXIudGhyb3dJZkFueU5vdFByZXNlbnQoY2VzaXVtUHJvcHMsIFsnY2VudGVyJywgJ3NlbWlNYWpvckF4aXMnLCAnc2VtaU1pbm9yQXhpcyddKTtcclxuXHJcbiAgICByZXR1cm4gc3VwZXIuYWRkKG5ldyBFbGxpcHNlUHJpbWl0aXZlKGNlc2l1bVByb3BzKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoZWxsaXBzZTogYW55LCBjZXNpdW1Qcm9wczogYW55KTogYW55IHtcclxuICAgIGVsbGlwc2UudXBkYXRlTG9jYXRpb25EYXRhKGNlc2l1bVByb3BzKTtcclxuXHJcbiAgICByZXR1cm4gZWxsaXBzZTtcclxuICB9XHJcbn1cclxuIl19