UNPKG

angular-cesium

Version:
113 lines 13.4 kB
import { AcEntity } from '../../angular-cesium/models/ac-entity'; import { EditPoint } from './edit-point'; import { defaultLabelProps } from './label-props'; export class EditablePoint extends AcEntity { constructor(id, pointLayer, coordinateConverter, editOptions, position) { super(); this.id = id; this.pointLayer = pointLayer; this.coordinateConverter = coordinateConverter; this.editOptions = editOptions; this._enableEdit = true; this._labels = []; this._props = Object.assign({}, editOptions.pointProps); if (position) { this.createFromExisting(position); } } get labels() { return this._labels; } set labels(labels) { if (!labels) { return; } const position = this.point.getPosition(); this._labels = labels.map((label, index) => { if (!label.position) { label.position = position; } return Object.assign({}, defaultLabelProps, label); }); } get props() { return this._props; } set props(value) { this._props = value; } get enableEdit() { return this._enableEdit; } set enableEdit(value) { this._enableEdit = value; if (value) { this.point.props.color = Cesium.Color.WHITE; } else { this.point.props.color = Cesium.Color.DIMGREY; this.point.props.pixelSize = 10; } this.updatePointLayer(); } createFromExisting(position) { this.point = new EditPoint(this.id, position, this._props); this.updatePointLayer(); } hasPosition(point) { if (point.position) { return true; } return false; } setManually(point, props) { if (!this.enableEdit) { throw new Error('Update manually only in edit mode, after point is created'); } let newProps = props; if (this.hasPosition(point)) { newProps = point.pointProp ? point.pointProp : props; this.point.setPosition(point.position); } else { this.point.setPosition(point); } this.point.props = newProps; this.updatePointLayer(); } addLastPoint(position) { this.point.setPosition(position); this.updatePointLayer(); } movePoint(toPosition) { if (!this.point) { this.point = new EditPoint(this.id, toPosition, this._props); } else { this.point.setPosition(toPosition); } this.updatePointLayer(); } getCurrentPoint() { return this.point; } getPosition() { return this.point.getPosition(); } getPositionCallbackProperty() { return new Cesium.CallbackProperty(this.getPosition.bind(this), false); } updatePointLayer() { this.pointLayer.update(this.point, this.point.getId()); } update() { this.updatePointLayer(); } dispose() { this.pointLayer.remove(this.point.getId()); } getId() { return this.id; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNlc2l1bS9zcmMvbGliL2FuZ3VsYXItY2VzaXVtLXdpZGdldHMvbW9kZWxzL2VkaXRhYmxlLXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUdqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQVE5RCxNQUFNLE9BQU8sYUFBYyxTQUFRLFFBQVE7SUFNekMsWUFBb0IsRUFBVSxFQUNWLFVBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxXQUE2QixFQUNyQyxRQUFxQjtRQUMvQixLQUFLLEVBQUUsQ0FBQztRQUxVLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQVB6QyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixZQUFPLEdBQWlCLEVBQUUsQ0FBQztRQVFqQyxJQUFJLENBQUMsTUFBTSxxQkFBTyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFvQjtRQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztTQUNSO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVB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RUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUQ7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELDJCQUEyQjtRQUN6QixPQUFPLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY0xheWVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYW5ndWxhci1jZXNpdW0vY29tcG9uZW50cy9hYy1sYXllci9hYy1sYXllci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY0VudGl0eSB9IGZyb20gJy4uLy4uL2FuZ3VsYXItY2VzaXVtL21vZGVscy9hYy1lbnRpdHknO1xyXG5pbXBvcnQgeyBDYXJ0ZXNpYW4zIH0gZnJvbSAnLi4vLi4vYW5ndWxhci1jZXNpdW0vbW9kZWxzL2NhcnRlc2lhbjMnO1xyXG5pbXBvcnQgeyBDb29yZGluYXRlQ29udmVydGVyIH0gZnJvbSAnLi4vLi4vYW5ndWxhci1jZXNpdW0vc2VydmljZXMvY29vcmRpbmF0ZS1jb252ZXJ0ZXIvY29vcmRpbmF0ZS1jb252ZXJ0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVkaXRQb2ludCB9IGZyb20gJy4vZWRpdC1wb2ludCc7XHJcbmltcG9ydCB7IGRlZmF1bHRMYWJlbFByb3BzLCBMYWJlbFByb3BzIH0gZnJvbSAnLi9sYWJlbC1wcm9wcyc7XHJcbmltcG9ydCB7IFBvaW50RWRpdE9wdGlvbnMsIFBvaW50UHJvcHMgfSBmcm9tICcuL3BvaW50LWVkaXQtb3B0aW9ucyc7XHJcblxyXG5pbnRlcmZhY2UgUG9zaXRpb25XaXRoUG9pbnRQcm9wcyB7XHJcbiAgcG9zaXRpb246IENhcnRlc2lhbjM7XHJcbiAgcG9pbnRQcm9wPzogUG9pbnRQcm9wcztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlUG9pbnQgZXh0ZW5kcyBBY0VudGl0eSB7XHJcbiAgcHJpdmF0ZSBwb2ludDogRWRpdFBvaW50O1xyXG4gIHByaXZhdGUgX2VuYWJsZUVkaXQgPSB0cnVlO1xyXG4gIHByaXZhdGUgX3Byb3BzOiBQb2ludFByb3BzO1xyXG4gIHByaXZhdGUgX2xhYmVsczogTGFiZWxQcm9wc1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWQ6IHN0cmluZyxcclxuICAgICAgICAgICAgICBwcml2YXRlIHBvaW50TGF5ZXI6IEFjTGF5ZXJDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb29yZGluYXRlQ29udmVydGVyOiBDb29yZGluYXRlQ29udmVydGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZWRpdE9wdGlvbnM6IFBvaW50RWRpdE9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgcG9zaXRpb24/OiBDYXJ0ZXNpYW4zKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5fcHJvcHMgPSB7Li4uZWRpdE9wdGlvbnMucG9pbnRQcm9wc307XHJcbiAgICBpZiAocG9zaXRpb24pIHtcclxuICAgICAgdGhpcy5jcmVhdGVGcm9tRXhpc3RpbmcocG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGxhYmVscygpOiBMYWJlbFByb3BzW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhYmVscztcclxuICB9XHJcblxyXG4gIHNldCBsYWJlbHMobGFiZWxzOiBMYWJlbFByb3BzW10pIHtcclxuICAgIGlmICghbGFiZWxzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5wb2ludC5nZXRQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5fbGFiZWxzID0gbGFiZWxzLm1hcCgobGFiZWwsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghbGFiZWwucG9zaXRpb24pIHtcclxuICAgICAgICBsYWJlbC5wb3NpdGlvbiA9IHBvc2l0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0TGFiZWxQcm9wcywgbGFiZWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgcHJvcHMoKTogUG9pbnRQcm9wcyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJvcHM7XHJcbiAgfVxyXG5cclxuICBzZXQgcHJvcHModmFsdWU6IFBvaW50UHJvcHMpIHtcclxuICAgIHRoaXMuX3Byb3BzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZW5hYmxlRWRpdCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmFibGVFZGl0O1xyXG4gIH1cclxuXHJcbiAgc2V0IGVuYWJsZUVkaXQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2VuYWJsZUVkaXQgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnBvaW50LnByb3BzLmNvbG9yID0gQ2VzaXVtLkNvbG9yLldISVRFO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb2ludC5wcm9wcy5jb2xvciA9IENlc2l1bS5Db2xvci5ESU1HUkVZO1xyXG4gICAgICB0aGlzLnBvaW50LnByb3BzLnBpeGVsU2l6ZSA9IDEwO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVQb2ludExheWVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUZyb21FeGlzdGluZyhwb3NpdGlvbjogQ2FydGVzaWFuMykge1xyXG4gICAgdGhpcy5wb2ludCA9IG5ldyBFZGl0UG9pbnQodGhpcy5pZCwgcG9zaXRpb24sIHRoaXMuX3Byb3BzKTtcclxuICAgIHRoaXMudXBkYXRlUG9pbnRMYXllcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNQb3NpdGlvbihwb2ludDogUG9zaXRpb25XaXRoUG9pbnRQcm9wcyB8IENhcnRlc2lhbjMpOiBwb2ludCBpcyBQb3NpdGlvbldpdGhQb2ludFByb3BzIHtcclxuICAgIGlmICgocG9pbnQgYXMgUG9zaXRpb25XaXRoUG9pbnRQcm9wcykucG9zaXRpb24pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRNYW51YWxseShwb2ludDogUG9zaXRpb25XaXRoUG9pbnRQcm9wcyB8IENhcnRlc2lhbjMsIHByb3BzPzogUG9pbnRQcm9wcykge1xyXG4gICAgaWYgKCF0aGlzLmVuYWJsZUVkaXQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcGRhdGUgbWFudWFsbHkgb25seSBpbiBlZGl0IG1vZGUsIGFmdGVyIHBvaW50IGlzIGNyZWF0ZWQnKTtcclxuICAgIH1cclxuICAgIGxldCBuZXdQcm9wcyA9IHByb3BzO1xyXG4gICAgaWYgKHRoaXMuaGFzUG9zaXRpb24ocG9pbnQpKSB7XHJcbiAgICAgIG5ld1Byb3BzID0gcG9pbnQucG9pbnRQcm9wID8gcG9pbnQucG9pbnRQcm9wIDogcHJvcHM7XHJcbiAgICAgIHRoaXMucG9pbnQuc2V0UG9zaXRpb24ocG9pbnQucG9zaXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb2ludC5zZXRQb3NpdGlvbihwb2ludCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvaW50LnByb3BzID0gbmV3UHJvcHM7XHJcbiAgICB0aGlzLnVwZGF0ZVBvaW50TGF5ZXIoKTtcclxuICB9XHJcblxyXG4gIGFkZExhc3RQb2ludChwb3NpdGlvbjogQ2FydGVzaWFuMykge1xyXG4gICAgdGhpcy5wb2ludC5zZXRQb3NpdGlvbihwb3NpdGlvbik7XHJcbiAgICB0aGlzLnVwZGF0ZVBvaW50TGF5ZXIoKTtcclxuICB9XHJcblxyXG4gIG1vdmVQb2ludCh0b1Bvc2l0aW9uOiBDYXJ0ZXNpYW4zKSB7XHJcbiAgICBpZiAoIXRoaXMucG9pbnQpIHtcclxuICAgICAgdGhpcy5wb2ludCA9IG5ldyBFZGl0UG9pbnQodGhpcy5pZCwgdG9Qb3NpdGlvbiwgdGhpcy5fcHJvcHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb2ludC5zZXRQb3NpdGlvbih0b1Bvc2l0aW9uKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlUG9pbnRMYXllcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFBvaW50KCk6IEVkaXRQb2ludCB7XHJcbiAgICByZXR1cm4gdGhpcy5wb2ludDtcclxuICB9XHJcblxyXG4gIGdldFBvc2l0aW9uKCk6IENhcnRlc2lhbjMge1xyXG4gICAgcmV0dXJuIHRoaXMucG9pbnQuZ2V0UG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIGdldFBvc2l0aW9uQ2FsbGJhY2tQcm9wZXJ0eSgpOiBDYXJ0ZXNpYW4zIHtcclxuICAgIHJldHVybiBuZXcgQ2VzaXVtLkNhbGxiYWNrUHJvcGVydHkodGhpcy5nZXRQb3NpdGlvbi5iaW5kKHRoaXMpLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVBvaW50TGF5ZXIoKSB7XHJcbiAgICB0aGlzLnBvaW50TGF5ZXIudXBkYXRlKHRoaXMucG9pbnQsIHRoaXMucG9pbnQuZ2V0SWQoKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVBvaW50TGF5ZXIoKTtcclxuICB9XHJcblxyXG4gIGRpc3Bvc2UoKSB7XHJcbiAgICB0aGlzLnBvaW50TGF5ZXIucmVtb3ZlKHRoaXMucG9pbnQuZ2V0SWQoKSk7XHJcbiAgfVxyXG5cclxuICBnZXRJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmlkO1xyXG4gIH1cclxufVxyXG4iXX0=