@eliorar/angular-cesium
Version:
Angular library for working with Cesium.
32 lines • 4.87 kB
JavaScript
import { Injectable } from '@angular/core';
import { PrimitiveCollection } from 'cesium';
import { Checker } from '../../../../utils/checker';
import { EllipsePrimitive } from 'primitive-primitives';
import { PrimitivesDrawerService } from '../../primitives-drawer/primitives-drawer.service';
import * as i0 from "@angular/core";
import * as i1 from "../../../cesium/cesium.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(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.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DynamicEllipseDrawerService, deps: [{ token: i1.CesiumService }], target: i0.ɵɵFactoryTarget.Injectable });
DynamicEllipseDrawerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DynamicEllipseDrawerService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DynamicEllipseDrawerService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.CesiumService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lbGxpcHNlLWRyYXdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jZXNpdW0vc3JjL2xpYi9hbmd1bGFyLWNlc2l1bS9zZXJ2aWNlcy9kcmF3ZXJzL3N0YXRpYy1keW5hbWljL2VsbGlwc2UtZHJhd2VyL2R5bmFtaWMtZWxsaXBzZS1kcmF3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUUzQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbURBQW1ELENBQUM7OztBQUcxRjs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFDdEUsWUFBWSxhQUE0QjtRQUN0QyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxXQUFnQjtRQUNsQixPQUFPLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBRXhGLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZLEVBQUUsV0FBZ0I7UUFDbkMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O3dIQWZVLDJCQUEyQjs0SEFBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcmltaXRpdmVDb2xsZWN0aW9ufSBmcm9tICdjZXNpdW0nO1xuaW1wb3J0IHtDZXNpdW1TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jZXNpdW0vY2VzaXVtLnNlcnZpY2UnO1xuaW1wb3J0IHtDaGVja2VyfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9jaGVja2VyJztcbmltcG9ydCB7RWxsaXBzZVByaW1pdGl2ZX0gZnJvbSAncHJpbWl0aXZlLXByaW1pdGl2ZXMnO1xuaW1wb3J0IHtQcmltaXRpdmVzRHJhd2VyU2VydmljZX0gZnJvbSAnLi4vLi4vcHJpbWl0aXZlcy1kcmF3ZXIvcHJpbWl0aXZlcy1kcmF3ZXIuc2VydmljZSc7XG5cblxuLyoqXG4gKiAgVGhpcyBkcmF3ZXIgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSBkeW5hbWljIHZlcnNpb24gb2YgdGhlIGVsbGlwc2UgY29tcG9uZW50LlxuICogIFdlIGFyZSB1c2luZyB0aGUgcHJpbWl0aXZlLXByaW1pdGl2ZXMgaW1wbGVtZW50YXRpb24gb2YgYW4gZWxsaXBzZS4gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZ290ZW54ZHMvUHJpbWl0aXZlLXByaW1pdGl2ZXNcbiAqICBUaGlzIGFsbG93cyB1cyB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBlbGxpcHNlcyB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IHByaW1pdGl2ZSBvYmplY3RcbiAqICBhcyBDZXNpdW0gZG9lcyBub3QgYWxsb3cgdXBkYXRpbmcgYW4gZWxsaXBzZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIER5bmFtaWNFbGxpcHNlRHJhd2VyU2VydmljZSBleHRlbmRzIFByaW1pdGl2ZXNEcmF3ZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoY2VzaXVtU2VydmljZTogQ2VzaXVtU2VydmljZSkge1xuICAgIHN1cGVyKFByaW1pdGl2ZUNvbGxlY3Rpb24sIGNlc2l1bVNlcnZpY2UpO1xuICB9XG5cbiAgYWRkKGNlc2l1bVByb3BzOiBhbnkpOiBhbnkge1xuICAgIENoZWNrZXIudGhyb3dJZkFueU5vdFByZXNlbnQoY2VzaXVtUHJvcHMsIFsnY2VudGVyJywgJ3NlbWlNYWpvckF4aXMnLCAnc2VtaU1pbm9yQXhpcyddKTtcblxuICAgIHJldHVybiBzdXBlci5hZGQobmV3IEVsbGlwc2VQcmltaXRpdmUoY2VzaXVtUHJvcHMpKTtcbiAgfVxuXG4gIHVwZGF0ZShlbGxpcHNlOiBhbnksIGNlc2l1bVByb3BzOiBhbnkpOiBhbnkge1xuICAgIGVsbGlwc2UudXBkYXRlTG9jYXRpb25EYXRhKGNlc2l1bVByb3BzKTtcblxuICAgIHJldHVybiBlbGxpcHNlO1xuICB9XG59XG4iXX0=