修改文本框同步问题
This commit is contained in:
@ -30,6 +30,7 @@ class TextBox extends Base {
|
||||
this.textDom = undefined
|
||||
this.create(this)
|
||||
this.sdk.addIncetance(this.options.id, this)
|
||||
|
||||
this.callback = callback
|
||||
|
||||
// syncData(this.sdk, this.options.id)
|
||||
@ -46,6 +47,7 @@ class TextBox extends Base {
|
||||
let dom = document.createElement('span');
|
||||
dom.id = that.options.id
|
||||
dom.className = 'popup-textarea'
|
||||
dom.style.zIndex = 1
|
||||
// 创建textarea元素
|
||||
var textarea = document.createElement('textarea');
|
||||
textarea.className = 'textarea'
|
||||
@ -134,17 +136,45 @@ class TextBox extends Base {
|
||||
this.options.text = words
|
||||
this.callback(this.options)
|
||||
let { sdkP } = getSdk()
|
||||
if(this.sdk === sdkP) {
|
||||
console.log(3)
|
||||
if (this.sdk === sdkP && sdkP) {//三维
|
||||
syncData(this.sdk, this.options.id)
|
||||
}
|
||||
else {
|
||||
console.log(2)
|
||||
else if (sdkP) {//二维
|
||||
sdkP.entityMap.get(this.options.id).text = words
|
||||
sdkP.entityMap.get(this.options.id).twoToThree(this.options.position)
|
||||
} else if (!sdkP) {
|
||||
syncData(this.sdk, this.options.id)
|
||||
}
|
||||
}
|
||||
async twoToThree(position) {
|
||||
let that = this
|
||||
that.sdk.viewer.scene.postRender.removeEventListener(that.handler);
|
||||
let posi = Cesium.Cartesian3.fromDegrees(position.lng, position.lat, position.alt)
|
||||
|
||||
that.handler = function () {
|
||||
const position = Cesium.SceneTransforms.wgs84ToWindowCoordinates(
|
||||
that.sdk.viewer.scene, posi
|
||||
);
|
||||
if (position) {
|
||||
let width = that.textDom.clientWidth * 1
|
||||
let height = that.textDom.clientHeight * 1
|
||||
that.textDom.style.left = `${position.x - width / 2}px`;
|
||||
that.textDom.style.top = `${position.y - height}px`;
|
||||
}
|
||||
}
|
||||
that.sdk.viewer.scene.postRender.addEventListener(that.handler);
|
||||
}
|
||||
async returnFun() {
|
||||
return this.handler
|
||||
}
|
||||
get text() {
|
||||
return this.options.text
|
||||
}
|
||||
set text(val) {
|
||||
this.options.text = val
|
||||
this.textDom.querySelector('textarea').value = val
|
||||
this.callback(this.options)
|
||||
}
|
||||
get onClick() {
|
||||
return this.clickCallBack
|
||||
}
|
||||
|
Reference in New Issue
Block a user