Compare commits

...

7 Commits

4 changed files with 90 additions and 71 deletions

View File

@ -74,33 +74,35 @@ class BatchModel extends Base {
Draw && Draw.start((a, positions) => { Draw && Draw.start((a, positions) => {
this.options.positions = positions; this.options.positions = positions;
//判断范围是否过大 //判断范围是否过大
if (options.type == '面') { if (positions) {
let posi = positions.map(v => { if (options.type == '面') {
return Cesium.Cartesian3.fromDegrees(v.lng, v.lat) let posi = positions.map(v => {
}) return Cesium.Cartesian3.fromDegrees(v.lng, v.lat)
let dis1 = Cesium.Cartesian3.distance(posi[0], posi[1]) })
let dis2 = Cesium.Cartesian3.distance(posi[1], posi[2]) let dis1 = Cesium.Cartesian3.distance(posi[0], posi[1])
let num1 = dis1 / this.options.spacing let dis2 = Cesium.Cartesian3.distance(posi[1], posi[2])
let num2 = dis2 / this.options.spacing let num1 = dis1 / this.options.spacing
if (num1 * num2 > 100) { let num2 = dis2 / this.options.spacing
tools.message({ type: 'warning', text: '数量大于100请重新绘制' }) if (num1 * num2 > 100) {
return; tools.message({ type: 'warning', text: '数量大于100请重新绘制' })
} return;
} else if (options.type == '线') { }
let posi = positions.map(v => { } else if (options.type == '线') {
return Cesium.Cartesian3.fromDegrees(v.lng, v.lat) let posi = positions.map(v => {
}) return Cesium.Cartesian3.fromDegrees(v.lng, v.lat)
let dis = 0 })
for (let i = 0; i < posi.length - 2; i++) { let dis = 0
dis += Cesium.Cartesian3.distance(posi[i], posi[i + 1]) for (let i = 0; i < posi.length - 2; i++) {
} dis += Cesium.Cartesian3.distance(posi[i], posi[i + 1])
if (dis / this.options.spacing > 100) { }
tools.message({ type: 'warning', text: '数量大于100请重新绘制' }) if (dis / this.options.spacing > 100) {
return; tools.message({ type: 'warning', text: '数量大于100请重新绘制' })
return;
}
} }
// this.callback(this.options);
(this.options.positions.length || this.options.positions.lng) && BatchModel.computeDis(this)
} }
// this.callback(this.options);
(this.options.positions.length || this.options.positions.lng) && BatchModel.computeDis(this)
}) })
} else { } else {
@ -115,51 +117,59 @@ class BatchModel extends Base {
let posiArr = [] let posiArr = []
let array = [] let array = []
if (that.options.type == '面') { if (that.options.type == '面') {
that.options.positions.forEach(item => { if (that.options.positions.length != 0) {
fromDegreesArray.push(item.lng, item.lat) that.options.positions.forEach(item => {
}) fromDegreesArray.push(item.lng, item.lat)
// arr = that.generateInterpolatedPoints(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray), that.options.spacing)
arr = await that.computedArea(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray), that.options.spacing)
array[0] = arr
array[1] = that.calculateRoadAngle(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray)[0], Cesium.Cartesian3.fromDegreesArray(fromDegreesArray)[3])
arr.forEach((item, index) => {
const cartographic = Cesium.Cartographic.fromCartesian(
item // Cartesian3对象 {x, y, z}
);
const longitude = Cesium.Math.toDegrees(cartographic.longitude);
const latitude = Cesium.Math.toDegrees(cartographic.latitude);
const height = cartographic.height;
posiArr.push({
lng: longitude,
lat: latitude,
alt: height
}) })
}) // arr = that.generateInterpolatedPoints(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray), that.options.spacing)
arr = await that.computedArea(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray), that.options.spacing)
array[0] = arr
array[1] = that.calculateRoadAngle(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray)[0], Cesium.Cartesian3.fromDegreesArray(fromDegreesArray)[3])
arr.forEach((item, index) => {
const cartographic = Cesium.Cartographic.fromCartesian(
item // Cartesian3对象 {x, y, z}
);
const longitude = Cesium.Math.toDegrees(cartographic.longitude);
const latitude = Cesium.Math.toDegrees(cartographic.latitude);
const height = cartographic.height;
posiArr.push({
lng: longitude,
lat: latitude,
alt: height
})
})
}
} else if (that.options.type == '线') { } else if (that.options.type == '线') {
that.options.positions.forEach(item => { if (that.options.positions.length != 0) {
fromDegreesArray.push(item.lng, item.lat) that.options.positions.forEach(item => {
}) fromDegreesArray.push(item.lng, item.lat)
array = await that.linePoint(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray), that.options.spacing)
arr = array[0]
that.pointArr = arr
arr.forEach((item, index) => {
const cartographic = Cesium.Cartographic.fromCartesian(
item // Cartesian3对象 {x, y, z}
);
const longitude = Cesium.Math.toDegrees(cartographic.longitude);
const latitude = Cesium.Math.toDegrees(cartographic.latitude);
const height = cartographic.height;
posiArr.push({
lng: longitude,
lat: latitude,
alt: height
}) })
}) array = await that.linePoint(Cesium.Cartesian3.fromDegreesArray(fromDegreesArray), that.options.spacing)
arr = array[0]
that.pointArr = arr
arr.forEach((item, index) => {
const cartographic = Cesium.Cartographic.fromCartesian(
item // Cartesian3对象 {x, y, z}
);
const longitude = Cesium.Math.toDegrees(cartographic.longitude);
const latitude = Cesium.Math.toDegrees(cartographic.latitude);
const height = cartographic.height;
posiArr.push({
lng: longitude,
lat: latitude,
alt: height
})
})
}
} else if (that.options.type == '点') { } else if (that.options.type == '点') {
let height = await that.getClampToHeight({ lng: that.options.positions.lng, lat: that.options.positions.lat }) if (that.options.positions.lng) {
posiArr = [{ lng: that.options.positions.lng, lat: that.options.positions.lat, alt: height }] let height = await that.getClampToHeight({ lng: that.options.positions.lng, lat: that.options.positions.lat })
// posiArr = [that.options.positions] posiArr = [{ lng: that.options.positions.lng, lat: that.options.positions.lat, alt: height }]
that.pointArr = posiArr // posiArr = [that.options.positions]
that.pointArr = posiArr
}
} }
let params = { let params = {
type: that.options.type, type: that.options.type,

View File

@ -33,7 +33,7 @@ class TextBox extends Base {
this.callback = callback this.callback = callback
// syncData(this.sdk, this.options.id) syncData(this.sdk, this.options.id)
} }
@ -134,15 +134,17 @@ class TextBox extends Base {
} }
async getwords(words) { async getwords(words) {
this.options.text = words this.options.text = words
this.callback(this.options)
let { sdkP } = getSdk() let { sdkP } = getSdk()
if (this.sdk === sdkP && sdkP) {//三维 if (this.sdk === sdkP && sdkP) {//三维
this.callback(this.options)
syncData(this.sdk, this.options.id) syncData(this.sdk, this.options.id)
} }
else if (sdkP) {//二维 else if (sdkP) {//二维
sdkP.entityMap.get(this.options.id).text = words sdkP.entityMap.get(this.options.id).text = words
sdkP.entityMap.get(this.options.id).twoToThree(this.options.position) sdkP.entityMap.get(this.options.id).twoToThree(this.options.position)
} else if (!sdkP) { } else if (!sdkP) {
this.callback(this.options)
syncData(this.sdk, this.options.id) syncData(this.sdk, this.options.id)
} }
} }
@ -283,6 +285,7 @@ class TextBox extends Base {
this.sdk.viewer.cesiumWidget.container.removeChild(this.textDom); this.sdk.viewer.cesiumWidget.container.removeChild(this.textDom);
} }
await this.sdk.removeIncetance(this.options.id) await this.sdk.removeIncetance(this.options.id)
syncData(this.sdk, this.options.id)
} }
flicker() { } flicker() { }

View File

@ -2324,7 +2324,7 @@ class TrajectoryMotion extends Base {
this.model && (this.model.show = false) this.model && (this.model.show = false)
} }
this.labelShow = this.originalOptions.label.show this.labelShow = this.originalOptions.label.show
this.fuelLabelShow = this.originalOptions.fuelShow this.fuelShow = this.originalOptions.fuelShow
this.labelColor = this.originalOptions.label.color this.labelColor = this.originalOptions.label.color
this.labelFontSize = this.originalOptions.label.fontSize this.labelFontSize = this.originalOptions.label.fontSize
this.labelFontFamily = this.originalOptions.label.fontFamily this.labelFontFamily = this.originalOptions.label.fontFamily

View File

@ -443,8 +443,14 @@ class YJEarth {
_this.entityMap.get(_this.clickTextDom.id).isClick(movement.position, _this.clickTextDom.id) _this.entityMap.get(_this.clickTextDom.id).isClick(movement.position, _this.clickTextDom.id)
_this.blurFun = () => { _this.blurFun = () => {
_this.entityMap.get(_this.clickTextDom.id).isClick((movement && movement.position) || null, _this.clickTextDom.id) // let { sdkP } = getSdk()
// if (_this == sdkP && sdkP) {//二维
// _this.entityMap.get(_this.clickTextDom.id).getwords(_this.clickTextDom.getElementsByTagName('textarea')[0].value)
// } else if (!sdkP) {
_this.entityMap.get(_this.clickTextDom.id).getwords(_this.clickTextDom.getElementsByTagName('textarea')[0].value) _this.entityMap.get(_this.clickTextDom.id).getwords(_this.clickTextDom.getElementsByTagName('textarea')[0].value)
// }
_this.clickTextDom.querySelector('textarea').removeEventListener('blur', _this.blurFun)
} }
_this.clickTextDom.querySelector('textarea').addEventListener('blur', _this.blurFun) _this.clickTextDom.querySelector('textarea').addEventListener('blur', _this.blurFun)
break; break;
@ -501,7 +507,7 @@ class YJEarth {
_this.clickTextDom.removeEventListener('mousedown', mousedown); _this.clickTextDom.removeEventListener('mousedown', mousedown);
_this.viewer._element.removeEventListener('mousemove', mousemove); _this.viewer._element.removeEventListener('mousemove', mousemove);
_this.viewer._element.removeEventListener('mouseup', mouseup); _this.viewer._element.removeEventListener('mouseup', mouseup);
_this.entityMap.get(_this.clickTextDom.id).getwords(_this.clickTextDom.getElementsByTagName('textarea')[0].value) // _this.entityMap.get(_this.clickTextDom.id).getwords(_this.clickTextDom.getElementsByTagName('textarea')[0].value)
_this.clickTextDom.style['pointer-events'] = 'none' _this.clickTextDom.style['pointer-events'] = 'none'
_this.clickTextDom = undefined _this.clickTextDom = undefined