UNPKG

angular-cesium

Version:
85 lines 11 kB
export class HtmlPrimitive { constructor(options, collection = null) { if (typeof options !== 'object') { throw new Error('HtmlPrimitive ERROR: invalid html options!'); } this.scene = options.scene; this._mapContainer = options.mapContainer; this.show = options.show || true; this.position = options.position; this.pixelOffset = options.pixelOffset; this.element = options.element; this.collection = collection; } set scene(scene) { this._scene = scene; } set show(show) { this._show = show; if (Cesium.defined(this.element)) { if (show) { this._element.style.display = 'block'; } else { this._element.style.display = 'none'; } } } get show() { return this._show; } set position(position) { this._position = position; } get position() { return this._position; } set pixelOffset(pixelOffset) { this._pixelOffset = pixelOffset; } get pixelOffset() { return this._pixelOffset; } set element(element) { this._element = element; if (Cesium.defined(element)) { this._mapContainer.appendChild(element); this._element.style.position = 'absolute'; this._element.style.zIndex = Number.MAX_VALUE.toString(); } } get element() { return this._element; } set collection(collection) { this._collection = collection; } get collection() { return this._collection; } update() { if (!Cesium.defined(this._show) || !Cesium.defined(this._element)) { return; } let screenPosition = Cesium.SceneTransforms.wgs84ToWindowCoordinates(this._scene, this._position); if (!Cesium.defined(screenPosition)) { screenPosition = new Cesium.Cartesian2((-1000), (-1000)); } else if (Cesium.defined(this._pixelOffset) && Cesium.defined(this._pixelOffset.x) && Cesium.defined(this._pixelOffset.y)) { screenPosition.y += this._pixelOffset.y; screenPosition.x += this._pixelOffset.x; } if (this._lastPosition && this._lastPosition.equals(screenPosition)) { return; } this._element.style.top = `${screenPosition.y}px`; this._element.style.left = `${screenPosition.x}px`; this._lastPosition = screenPosition; } remove() { if (this._element) { this._element.remove(); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2VzaXVtL3NyYy9saWIvY2VzaXVtLWV4dGVuZGVyL3ByaW1pdGl2ZXMvaHRtbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sYUFBYTtJQVd4QixZQUFZLE9BQVksRUFBRSxhQUE2QixJQUFJO1FBQ3pELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztTQUMvRDtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENB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QUFDLElBQUksQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHRtbENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IENhcnRlc2lhbjIgfSBmcm9tICcuLi8uLi9hbmd1bGFyLWNlc2l1bS9tb2RlbHMvY2FydGVzaWFuMic7XHJcbmltcG9ydCB7IENhcnRlc2lhbjMgfSBmcm9tICcuLi8uLi9hbmd1bGFyLWNlc2l1bS9tb2RlbHMvY2FydGVzaWFuMyc7XHJcblxyXG5leHBvcnQgY2xhc3MgSHRtbFByaW1pdGl2ZSB7XHJcblxyXG4gIHByaXZhdGUgX3NjZW5lOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc2hvdzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9wb3NpdGlvbjogQ2FydGVzaWFuMztcclxuICBwcml2YXRlIF9sYXN0UG9zaXRpb246IENhcnRlc2lhbjI7XHJcbiAgcHJpdmF0ZSBfcGl4ZWxPZmZzZXQ6IENhcnRlc2lhbjI7XHJcbiAgcHJpdmF0ZSBfZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbjogSHRtbENvbGxlY3Rpb247XHJcbiAgcHJpdmF0ZSBfbWFwQ29udGFpbmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnksIGNvbGxlY3Rpb246IEh0bWxDb2xsZWN0aW9uID0gbnVsbCkge1xyXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0h0bWxQcmltaXRpdmUgRVJST1I6IGludmFsaWQgaHRtbCBvcHRpb25zIScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2NlbmUgPSBvcHRpb25zLnNjZW5lO1xyXG4gICAgdGhpcy5fbWFwQ29udGFpbmVyID0gb3B0aW9ucy5tYXBDb250YWluZXI7XHJcbiAgICB0aGlzLnNob3cgPSBvcHRpb25zLnNob3cgfHwgdHJ1ZTtcclxuICAgIHRoaXMucG9zaXRpb24gPSBvcHRpb25zLnBvc2l0aW9uO1xyXG4gICAgdGhpcy5waXhlbE9mZnNldCA9IG9wdGlvbnMucGl4ZWxPZmZzZXQ7XHJcbiAgICB0aGlzLmVsZW1lbnQgPSBvcHRpb25zLmVsZW1lbnQ7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNjZW5lKHNjZW5lOiBhbnkpIHtcclxuICAgIHRoaXMuX3NjZW5lID0gc2NlbmU7XHJcbiAgfVxyXG5cclxuICBzZXQgc2hvdyhzaG93OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zaG93ID0gc2hvdztcclxuXHJcbiAgICBpZiAoQ2VzaXVtLmRlZmluZWQodGhpcy5lbGVtZW50KSkge1xyXG4gICAgICBpZiAoc2hvdykge1xyXG4gICAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvdygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93O1xyXG4gIH1cclxuXHJcbiAgc2V0IHBvc2l0aW9uKHBvc2l0aW9uOiBDYXJ0ZXNpYW4zKSB7XHJcbiAgICB0aGlzLl9wb3NpdGlvbiA9IHBvc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBvc2l0aW9uKCk6IENhcnRlc2lhbjMge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0IHBpeGVsT2Zmc2V0KHBpeGVsT2Zmc2V0OiBDYXJ0ZXNpYW4yKSB7XHJcbiAgICB0aGlzLl9waXhlbE9mZnNldCA9IHBpeGVsT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBpeGVsT2Zmc2V0KCk6IENhcnRlc2lhbjIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BpeGVsT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgc2V0IGVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50O1xyXG5cclxuICAgIGlmIChDZXNpdW0uZGVmaW5lZChlbGVtZW50KSkge1xyXG4gICAgICB0aGlzLl9tYXBDb250YWluZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnpJbmRleCA9IE51bWJlci5NQVhfVkFMVUUudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9lbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogSHRtbENvbGxlY3Rpb24pIHtcclxuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSBjb2xsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbGxlY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpIHtcclxuICAgIGlmICghQ2VzaXVtLmRlZmluZWQodGhpcy5fc2hvdykgfHwgIUNlc2l1bS5kZWZpbmVkKHRoaXMuX2VsZW1lbnQpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2NyZWVuUG9zaXRpb24gPSBDZXNpdW0uU2NlbmVUcmFuc2Zvcm1zLndnczg0VG9XaW5kb3dDb29yZGluYXRlcyh0aGlzLl9zY2VuZSwgdGhpcy5fcG9zaXRpb24pO1xyXG5cclxuICAgIGlmICghQ2VzaXVtLmRlZmluZWQoc2NyZWVuUG9zaXRpb24pKSB7XHJcbiAgICAgIHNjcmVlblBvc2l0aW9uID0gbmV3IENlc2l1bS5DYXJ0ZXNpYW4yKCgtMTAwMCksICgtMTAwMCkpO1xyXG4gICAgfSBlbHNlIGlmIChDZXNpdW0uZGVmaW5lZCh0aGlzLl9waXhlbE9mZnNldCkgJiYgQ2VzaXVtLmRlZmluZWQodGhpcy5fcGl4ZWxPZmZzZXQueCkgJiYgQ2VzaXVtLmRlZmluZWQodGhpcy5fcGl4ZWxPZmZzZXQueSkpIHtcclxuICAgICAgc2NyZWVuUG9zaXRpb24ueSArPSB0aGlzLl9waXhlbE9mZnNldC55O1xyXG4gICAgICBzY3JlZW5Qb3NpdGlvbi54ICs9IHRoaXMuX3BpeGVsT2Zmc2V0Lng7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2xhc3RQb3NpdGlvbiAmJiB0aGlzLl9sYXN0UG9zaXRpb24uZXF1YWxzKHNjcmVlblBvc2l0aW9uKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZWxlbWVudC5zdHlsZS50b3AgPSBgJHtzY3JlZW5Qb3NpdGlvbi55fXB4YDtcclxuICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUubGVmdCA9IGAke3NjcmVlblBvc2l0aW9uLnh9cHhgO1xyXG4gICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gc2NyZWVuUG9zaXRpb247XHJcbiAgfVxyXG5cclxuICByZW1vdmUoKSB7XHJcbiAgICBpZiAodGhpcy5fZWxlbWVudCkge1xyXG4gICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=