军标库 模型库

This commit is contained in:
2025-09-24 16:43:40 +08:00
parent 16a04a9a90
commit d20e10644f
2 changed files with 72 additions and 59 deletions

View File

@ -15,7 +15,6 @@ import { setSplitDirection, syncSplitData, setActiveId, getSdk } from '../../../
import { setActiveViewer, closeRotateAround, closeViewFollow } from '../../../../../Global/global' import { setActiveViewer, closeRotateAround, closeViewFollow } from '../../../../../Global/global'
class Model extends BaseModel { class Model extends BaseModel {
#timeoutEventObject = null
/** /**
* @constructor * @constructor
* @description 加载模型 * @description 加载模型
@ -88,7 +87,8 @@ class Model extends BaseModel {
console.warn("lat is required!") console.warn("lat is required!")
return return
} }
if(this.options.earth) { this._timeoutEventObject = null
if (this.options.earth) {
delete this.options.earth delete this.options.earth
} }
this.picking = true this.picking = true
@ -266,8 +266,8 @@ class Model extends BaseModel {
}, this.entity) }, this.entity)
} }
this.entity.isMove = true this.entity.isMove = true
clearTimeout(this.#timeoutEventObject) clearTimeout(this._timeoutEventObject)
this.#timeoutEventObject = setTimeout(() => { this._timeoutEventObject = setTimeout(() => {
this.entity && (this.entity.isMove = false) this.entity && (this.entity.isMove = false)
}, 500); }, 500);
}) })
@ -304,8 +304,8 @@ class Model extends BaseModel {
}, this.entity) }, this.entity)
} }
this.entity.isMove = true this.entity.isMove = true
clearTimeout(this.#timeoutEventObject) clearTimeout(this._timeoutEventObject)
this.#timeoutEventObject = setTimeout(() => { this._timeoutEventObject = setTimeout(() => {
this.entity && (this.entity.isMove = false) this.entity && (this.entity.isMove = false)
}, 500); }, 500);
@ -462,6 +462,16 @@ class Model extends BaseModel {
this.options.url = this.options.url || "" this.options.url = this.options.url || ""
} }
get name() {
return this.options.name
}
set name(v) {
console.log(v, 'vvvvvvvvv')
this.options.name = v
this.options.label.text = v
this.label && (this.label.text = v)
}
get color() { get color() {
return this.options.color return this.options.color
} }
@ -1659,8 +1669,8 @@ class Model extends BaseModel {
this.entity.minimumPixelSize = this.scaleByDistance ? undefined : this.options.minimumPixelSize this.entity.minimumPixelSize = this.scaleByDistance ? undefined : this.options.minimumPixelSize
this.editObj && this.editObj.update() this.editObj && this.editObj.update()
this.entity.isMove = true this.entity.isMove = true
clearTimeout(this.#timeoutEventObject) clearTimeout(this._timeoutEventObject)
this.#timeoutEventObject = setTimeout(() => { this._timeoutEventObject = setTimeout(() => {
this.entity && (this.entity.isMove = false) this.entity && (this.entity.isMove = false)
}, 500); }, 500);
} }

View File

@ -60,8 +60,8 @@ class GroundSvg extends Base {
* @param options.customView.relativePosition.lat {number} 纬度 * @param options.customView.relativePosition.lat {number} 纬度
* @param options.customView.relativePosition.alt {number} 高度 * @param options.customView.relativePosition.alt {number} 高度
* */ * */
#loadEvent = void 0 // #loadEvent = void 0
#loaded = false // #loaded = false
constructor(sdk, options = {}, _Dialog = {}) { constructor(sdk, options = {}, _Dialog = {}) {
super(sdk, options); super(sdk, options);
let jsCode = ` let jsCode = `
@ -79,6 +79,9 @@ class GroundSvg extends Base {
this.loaded = false; this.loaded = false;
this.ismove = false; this.ismove = false;
this._loadEvent = void 0
this._loaded = false
if (this.options.position.lat > 83.5) { if (this.options.position.lat > 83.5) {
this.options.position.lat = 83.5 this.options.position.lat = 83.5
} }
@ -132,7 +135,7 @@ class GroundSvg extends Base {
this._isdrag = false this._isdrag = false
this._EventBinding = new EventBinding() this._EventBinding = new EventBinding()
if(this.sdk.entityMap.get(this.options.id)) { if (this.sdk.entityMap.get(this.options.id)) {
return return
} }
this.sdk.addIncetance(this.options.id, this) this.sdk.addIncetance(this.options.id, this)
@ -148,7 +151,7 @@ class GroundSvg extends Base {
this.init() this.init()
} }
get type () { get type() {
return 'GroundSvg' return 'GroundSvg'
} }
@ -184,8 +187,8 @@ class GroundSvg extends Base {
set show(v) { set show(v) {
if (typeof v === "boolean") { if (typeof v === "boolean") {
if (this.options.text && this.options.text.show) { if (this.options.text && this.options.text.show) {
if(this.text) { if (this.text) {
if((!this.showView || this.showView == 3)) { if ((!this.showView || this.showView == 3)) {
this.text.show = v this.text.show = v
} }
else { else {
@ -323,7 +326,7 @@ class GroundSvg extends Base {
} }
set textValue(v) { set textValue(v) {
this.options.text.value = v this.options.text.value = v
if(this.text) { if (this.text) {
this.text.text = v this.text.text = v
} }
else { else {
@ -340,7 +343,7 @@ class GroundSvg extends Base {
set textShow(v) { set textShow(v) {
this.options.text.show = v this.options.text.show = v
if (this.show) { if (this.show) {
if((!this.showView || this.showView == 3)) { if ((!this.showView || this.showView == 3)) {
this.text && (this.text.show = v) this.text && (this.text.show = v)
} }
else { else {
@ -399,7 +402,7 @@ class GroundSvg extends Base {
} }
set textFontSize(v) { set textFontSize(v) {
this.options.text.fontSize = v this.options.text.fontSize = v
if(this.text) { if (this.text) {
this.text.fontSize = v this.text.fontSize = v
this.text.pixelOffset = v this.text.pixelOffset = v
} }
@ -866,7 +869,7 @@ class GroundSvg extends Base {
for (let m = 0; m < this.hierarchys[i].length; m++) { for (let m = 0; m < this.hierarchys[i].length; m++) {
let id = this.options.id + `-${i}_${m}}` let id = this.options.id + `-${i}_${m}}`
let oldEntity = this.sdk.viewer.entities.getById(id) let oldEntity = this.sdk.viewer.entities.getById(id)
if(oldEntity) { if (oldEntity) {
this.sdk.viewer.entities.remove(oldEntity) this.sdk.viewer.entities.remove(oldEntity)
} }
let entity = this.sdk.viewer.entities.add({ let entity = this.sdk.viewer.entities.add({
@ -908,9 +911,9 @@ class GroundSvg extends Base {
} }
} }
this.loaded = true this.loaded = true
this.#loaded = true this._loaded = true
if (this.#loadEvent) { if (this._loadEvent) {
this.#loadEvent() this._loadEvent()
} }
this.scale = this.scale this.scale = this.scale
GroundSvg.createText(this) GroundSvg.createText(this)
@ -954,7 +957,7 @@ class GroundSvg extends Base {
* @param {boolean} status=false 状态 * @param {boolean} status=false 状态
*/ */
async edit(state) { async edit(state) {
if (!this.#loaded) { if (!this._loaded) {
return return
} }
this.originalOptions = this.deepCopyObj(this.options) this.originalOptions = this.deepCopyObj(this.options)
@ -1210,7 +1213,7 @@ class GroundSvg extends Base {
* 重置 * 重置
*/ */
reset() { reset() {
if (!this.#loaded) { if (!this._loaded) {
return return
} }
this.options = this.deepCopyObj(this.originalOptions) this.options = this.deepCopyObj(this.originalOptions)
@ -1238,7 +1241,7 @@ class GroundSvg extends Base {
* @param {boolean} status=false 状态 * @param {boolean} status=false 状态
*/ */
drag(status, cd) { drag(status, cd) {
if (!this.#loaded || !this.sdk || !this.sdk.viewer) { if (!this._loaded || !this.sdk || !this.sdk.viewer) {
return return
} }
this.ismove = false this.ismove = false
@ -1321,26 +1324,26 @@ class GroundSvg extends Base {
angleH = bearing2 - bearingH angleH = bearing2 - bearingH
if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) { if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) {
angleW = angleW + 180 angleW = angleW + 180
flag=true flag = true
} }
if ((angleH > -360 && angleH < -90) || (angleH < 360 && angleH > 90)) { if ((angleH > -360 && angleH < -90) || (angleH < 360 && angleH > 90)) {
angleH = angleH + 180 angleH = angleH + 180
flag2=true flag2 = true
} }
if(flag && flag2) { if (flag && flag2) {
this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#ff0000') this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#ff0000')
} }
else { else {
if(flag) { if (flag) {
this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#ff0000') this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#ff0000')
this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a')
} }
else if(flag2) { else if (flag2) {
this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#ff0000') this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#ff0000')
@ -1393,26 +1396,26 @@ class GroundSvg extends Base {
if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) { if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) {
angleW = angleW + 180 angleW = angleW + 180
flag=true flag = true
} }
if ((angleH > -360 && angleH < -90) || (angleH < 360 && angleH > 90)) { if ((angleH > -360 && angleH < -90) || (angleH < 360 && angleH > 90)) {
angleH = angleH + 180 angleH = angleH + 180
flag2=true flag2 = true
} }
if(flag && flag2) { if (flag && flag2) {
this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#ff0000') this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#ff0000')
this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a')
} }
else { else {
if(flag) { if (flag) {
this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#ff0000') this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#ff0000')
this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a')
} }
else if(flag2) { else if (flag2) {
this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a')
this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a')
@ -1597,11 +1600,11 @@ class GroundSvg extends Base {
this.ScreenSpaceEventHandler.setInputAction((movement) => { this.ScreenSpaceEventHandler.setInputAction((movement) => {
this.drag(false) this.drag(false)
if (!this._DialogObject) { // if (!this._DialogObject) {
cd && cd(this.options) cd && cd(this.options)
syncData(this.sdk, this.options.id) syncData(this.sdk, this.options.id)
syncSplitData(this.sdk, this.options.id) syncSplitData(this.sdk, this.options.id)
} // }
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK) }, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
this.pointEntityCollection = new Cesium.EntityCollection() this.pointEntityCollection = new Cesium.EntityCollection()
@ -1628,7 +1631,7 @@ class GroundSvg extends Base {
controlPoints[9] = turf.destination(point, wh, 0 + angle, options).geometry.coordinates controlPoints[9] = turf.destination(point, wh, 0 + angle, options).geometry.coordinates
this.controlPoints = controlPoints this.controlPoints = controlPoints
if(!this.sdk || !this.sdk.viewer) { if (!this.sdk || !this.sdk.viewer) {
return return
} }
for (let i = 0; i < this.controlPoints.length; i++) { for (let i = 0; i < this.controlPoints.length; i++) {
@ -1706,7 +1709,7 @@ class GroundSvg extends Base {
} }
_updateGeojson(data, x, y) { _updateGeojson(data, x, y) {
if (!this.#loaded) { if (!this._loaded) {
return return
} }
let width = Math.abs(this.bbox[0] - this.bbox[2]) let width = Math.abs(this.bbox[0] - this.bbox[2])
@ -1727,7 +1730,7 @@ class GroundSvg extends Base {
} }
_update() { _update() {
if (!this.#loaded) { if (!this._loaded) {
return return
} }
let point = turf.point([this.position.lng, this.position.lat]); let point = turf.point([this.position.lng, this.position.lat]);
@ -2110,22 +2113,22 @@ class GroundSvg extends Base {
} }
load(callback) { load(callback) {
if (this.#loaded) { if (this._loaded) {
callback(); callback();
} }
else { else {
this.#loadEvent = callback this._loadEvent = callback
} }
} }
async remove() { async remove() {
this._worker.onmessage = (event) => {} this._worker.onmessage = (event) => { }
await this.sdk.removeIncetance(this.options.id) await this.sdk.removeIncetance(this.options.id)
if (!this.entity) { if (!this.entity) {
return return
} }
this.drag(false) this.drag(false)
if(!this.sdk || !this.sdk.viewer) { if (!this.sdk || !this.sdk.viewer) {
return return
} }
this.sdk.viewer.entities.remove(this.entity) this.sdk.viewer.entities.remove(this.entity)
@ -2235,7 +2238,7 @@ class GroundSvg extends Base {
else { else {
let array = [] let array = []
for (let i = 0; i < this.controlPoints.length; i++) { for (let i = 0; i < this.controlPoints.length; i++) {
let height = await this.getClampToHeight({lng: this.controlPoints[i][0], lat: this.controlPoints[i][1]}) let height = await this.getClampToHeight({ lng: this.controlPoints[i][0], lat: this.controlPoints[i][1] })
let cartesian = Cesium.Cartesian3.fromDegrees(this.controlPoints[i][0], this.controlPoints[i][1], height) let cartesian = Cesium.Cartesian3.fromDegrees(this.controlPoints[i][0], this.controlPoints[i][1], height)
array.push(cartesian.x, cartesian.y, cartesian.z) array.push(cartesian.x, cartesian.y, cartesian.z)
} }