UNPKG

angular-cesium-ivy

Version:
85 lines 10.6 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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QUFDLElBQUksQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHRtbENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBDYXJ0ZXNpYW4yIH0gZnJvbSAnLi4vLi4vYW5ndWxhci1jZXNpdW0vbW9kZWxzL2NhcnRlc2lhbjInO1xuaW1wb3J0IHsgQ2FydGVzaWFuMyB9IGZyb20gJy4uLy4uL2FuZ3VsYXItY2VzaXVtL21vZGVscy9jYXJ0ZXNpYW4zJztcblxuZXhwb3J0IGNsYXNzIEh0bWxQcmltaXRpdmUge1xuXG4gIHByaXZhdGUgX3NjZW5lOiBhbnk7XG4gIHByaXZhdGUgX3Nob3c6IGJvb2xlYW47XG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBDYXJ0ZXNpYW4zO1xuICBwcml2YXRlIF9sYXN0UG9zaXRpb246IENhcnRlc2lhbjI7XG4gIHByaXZhdGUgX3BpeGVsT2Zmc2V0OiBDYXJ0ZXNpYW4yO1xuICBwcml2YXRlIF9lbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbjogSHRtbENvbGxlY3Rpb247XG4gIHByaXZhdGUgX21hcENvbnRhaW5lcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnksIGNvbGxlY3Rpb246IEh0bWxDb2xsZWN0aW9uID0gbnVsbCkge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSHRtbFByaW1pdGl2ZSBFUlJPUjogaW52YWxpZCBodG1sIG9wdGlvbnMhJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zY2VuZSA9IG9wdGlvbnMuc2NlbmU7XG4gICAgdGhpcy5fbWFwQ29udGFpbmVyID0gb3B0aW9ucy5tYXBDb250YWluZXI7XG4gICAgdGhpcy5zaG93ID0gb3B0aW9ucy5zaG93IHx8IHRydWU7XG4gICAgdGhpcy5wb3NpdGlvbiA9IG9wdGlvbnMucG9zaXRpb247XG4gICAgdGhpcy5waXhlbE9mZnNldCA9IG9wdGlvbnMucGl4ZWxPZmZzZXQ7XG4gICAgdGhpcy5lbGVtZW50ID0gb3B0aW9ucy5lbGVtZW50O1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IGNvbGxlY3Rpb247XG4gIH1cblxuICBzZXQgc2NlbmUoc2NlbmU6IGFueSkge1xuICAgIHRoaXMuX3NjZW5lID0gc2NlbmU7XG4gIH1cblxuICBzZXQgc2hvdyhzaG93OiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvdyA9IHNob3c7XG5cbiAgICBpZiAoQ2VzaXVtLmRlZmluZWQodGhpcy5lbGVtZW50KSkge1xuICAgICAgaWYgKHNob3cpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgc2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdztcbiAgfVxuXG4gIHNldCBwb3NpdGlvbihwb3NpdGlvbjogQ2FydGVzaWFuMykge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBnZXQgcG9zaXRpb24oKTogQ2FydGVzaWFuMyB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG5cbiAgc2V0IHBpeGVsT2Zmc2V0KHBpeGVsT2Zmc2V0OiBDYXJ0ZXNpYW4yKSB7XG4gICAgdGhpcy5fcGl4ZWxPZmZzZXQgPSBwaXhlbE9mZnNldDtcbiAgfVxuXG4gIGdldCBwaXhlbE9mZnNldCgpOiBDYXJ0ZXNpYW4yIHtcbiAgICByZXR1cm4gdGhpcy5fcGl4ZWxPZmZzZXQ7XG4gIH1cblxuICBzZXQgZWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50O1xuXG4gICAgaWYgKENlc2l1bS5kZWZpbmVkKGVsZW1lbnQpKSB7XG4gICAgICB0aGlzLl9tYXBDb250YWluZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUuekluZGV4ID0gTnVtYmVyLk1BWF9WQUxVRS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudDtcbiAgfVxuXG4gIHNldCBjb2xsZWN0aW9uKGNvbGxlY3Rpb246IEh0bWxDb2xsZWN0aW9uKSB7XG4gICAgdGhpcy5fY29sbGVjdGlvbiA9IGNvbGxlY3Rpb247XG4gIH1cblxuICBnZXQgY29sbGVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBpZiAoIUNlc2l1bS5kZWZpbmVkKHRoaXMuX3Nob3cpIHx8ICFDZXNpdW0uZGVmaW5lZCh0aGlzLl9lbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzY3JlZW5Qb3NpdGlvbiA9IENlc2l1bS5TY2VuZVRyYW5zZm9ybXMud2dzODRUb1dpbmRvd0Nvb3JkaW5hdGVzKHRoaXMuX3NjZW5lLCB0aGlzLl9wb3NpdGlvbik7XG5cbiAgICBpZiAoIUNlc2l1bS5kZWZpbmVkKHNjcmVlblBvc2l0aW9uKSkge1xuICAgICAgc2NyZWVuUG9zaXRpb24gPSBuZXcgQ2VzaXVtLkNhcnRlc2lhbjIoKC0xMDAwKSwgKC0xMDAwKSk7XG4gICAgfSBlbHNlIGlmIChDZXNpdW0uZGVmaW5lZCh0aGlzLl9waXhlbE9mZnNldCkgJiYgQ2VzaXVtLmRlZmluZWQodGhpcy5fcGl4ZWxPZmZzZXQueCkgJiYgQ2VzaXVtLmRlZmluZWQodGhpcy5fcGl4ZWxPZmZzZXQueSkpIHtcbiAgICAgIHNjcmVlblBvc2l0aW9uLnkgKz0gdGhpcy5fcGl4ZWxPZmZzZXQueTtcbiAgICAgIHNjcmVlblBvc2l0aW9uLnggKz0gdGhpcy5fcGl4ZWxPZmZzZXQueDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmIHRoaXMuX2xhc3RQb3NpdGlvbi5lcXVhbHMoc2NyZWVuUG9zaXRpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudC5zdHlsZS50b3AgPSBgJHtzY3JlZW5Qb3NpdGlvbi55fXB4YDtcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtzY3JlZW5Qb3NpdGlvbi54fXB4YDtcbiAgICB0aGlzLl9sYXN0UG9zaXRpb24gPSBzY3JlZW5Qb3NpdGlvbjtcbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICBpZiAodGhpcy5fZWxlbWVudCkge1xuICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==