diff --git a/src/Obj/Base/CurvelineObject/_element.js b/src/Obj/Base/CurvelineObject/_element.js
index 02124ea..cc8b89a 100644
--- a/src/Obj/Base/CurvelineObject/_element.js
+++ b/src/Obj/Base/CurvelineObject/_element.js
@@ -1,7 +1,7 @@
import { attributeElm, labelStyleElm1, labelStyleElm2 } from '../../Element/elm_html'
function html(that) {
- return `
+ return `
@@ -9,22 +9,15 @@ function html(that) {
名称
-
diff --git a/src/Obj/Base/CurvelineObject/index.js b/src/Obj/Base/CurvelineObject/index.js
index 8b946e1..0f4ddde 100644
--- a/src/Obj/Base/CurvelineObject/index.js
+++ b/src/Obj/Base/CurvelineObject/index.js
@@ -58,6 +58,7 @@ class CurvelineObject extends Base {
this.options.extend = options.extend || false
this.options['length-unit'] = options['length-unit'] || '米'
this.options['fit-length-unit'] = options['fit-length-unit'] || '米'
+ this.options['words-name'] = options['words-name'] || '空间长度'
this.options['extend-width'] =
options['extend-width'] || options['extend-width'] === 0
? options['extend-width']
@@ -116,6 +117,7 @@ class CurvelineObject extends Base {
this.options.attributeType = options.attributeType || 'richText'
this.operate = {}
this.nodePoints = []
+ this.unitNum = 0
this.Dialog = _Dialog
if (!this.options.positions || this.options.positions.length < 2) {
this._error = '线段最少需要两个坐标!'
@@ -172,6 +174,8 @@ class CurvelineObject extends Base {
set length(v) {
this.options.length = v
+ //判断数值是否大于1000m
+
this._elms.length &&
this._elms.length.forEach(item => {
item.value = v
@@ -194,25 +198,60 @@ class CurvelineObject extends Base {
return this.options['length-unit']
}
set lengthUnit(v) {
+ this.unitNum++
this.options['length-unit'] = v
this._elms.lengthUnit &&
this._elms.lengthUnit.forEach(item => {
item.value = v
})
if (this.options.lengthByMeter) {
- switch (v) {
- case '米':
- this.length = this.options.lengthByMeter
- break
- case '千米':
- this.length = (this.options.lengthByMeter / 1000).toFixed(5)
- break
- default:
- this.length = this.options.lengthByMeter
+ if (this.unitNum > 2) {
+ switch (v) {
+ case '米':
+ this.length = this.noseToTail ? this.options.fitLengthByMeter : this.options.lengthByMeter
+
+ break
+ case '千米':
+ this.length = this.noseToTail ? (this.options.fitLengthByMeter / 1000).toFixed(5) : (this.options.lengthByMeter / 1000).toFixed(5)
+
+ break
+ default:
+ this.length = this.noseToTail ? this.options.fitLengthByMeter : this.options.lengthByMeter
+
+ break
+ }
+ } else {
+ let length = this.noseToTail ? this.options.fitLengthByMeter : this.options.lengthByMeter
+ this.lengthUnit = length > 1000 || length == 1000 ? '千米' : '米'
}
}
}
+ get wordsName() {
+ return this.options['words-name']
+ }
+ set wordsName(v) {
+ this.options['words-name'] = v
+ this._elms.wordsName &&
+ this._elms.wordsName.forEach(item => {
+ item.value = v
+ })
+
+ let _this = this
+ if (!this.noseToTail) {
+ this.computeDistance(
+ this.options.positions,
+ 2,
+ v
+ ).then(res => {
+ _this.options.lengthByMeter = res
+ _this.lengthUnit = this.options['length-unit']
+ })
+ } else {
+ let fromDegreesArray = this.renewPositions(this.options.positions)
+ }
+ }
+
get fitLengthUnit() {
return this.options['fit-length-unit']
}
@@ -310,8 +349,28 @@ class CurvelineObject extends Base {
)
this.renewPolygon(fromDegreesArray)
}
+ this.lengthUnit = this.options['length-unit']
+ // if (v) {
+ // if (this.options.fitLengthByMeter > 1000 || this.options.fitLengthByMeter == 1000) {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click()
+ // } else {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[0] && dom.querySelectorAll('dd')[0].click()
+ // }
+
+ // } else {
+ // if (this.options.lengthByMeter > 1000 || this.options.lengthByMeter == 1000) {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click()
+ // } else {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[0] && dom.querySelectorAll('dd')[0].click()
+ // }
+ // }
}
+
get heightMode() {
return this.options.heightMode ? this.options.heightMode : 0
}
@@ -349,11 +408,11 @@ class CurvelineObject extends Base {
break
}
- this.options.lengthByMeter = this.computeDistance2(
- this.smoothHandle(this.options.positions),
- 2,
- ground
- )
+ // this.options.lengthByMeter = this.computeDistance2(
+ // this.smoothHandle(this.options.positions),
+ // 2,
+ // ground
+ // )
this.lengthUnit = this.lengthUnit
this._elms.heightMode && (this._elms.heightMode.value = heightModeName)
this._elms.heightModeObject && (this._elms.heightModeObject.legp_searchActive(
@@ -1157,12 +1216,25 @@ class CurvelineObject extends Base {
CurvelineObject.createLabel(that)
// that.entity.polyline.positionsLngLat = positions
that.renewPolygon(fromDegreesArray)
- that.options.lengthByMeter = that.computeDistance2(that.smoothHandle(positions), 2, ground)
- that.lengthUnit = that.options['length-unit']
- syncData(that.sdk, that.options.id)
- if (that.options.show) {
- setSplitDirection(0, that.options.id)
- }
+ // that.options.lengthByMeter = that.computeDistance2(that.smoothHandle(positions), 2, ground)
+ // that.lengthUnit = that.options['length-unit']
+ // syncData(that.sdk, that.options.id)
+ // if (that.options.show) {
+ // setSplitDirection(0, that.options.id)
+ // }
+
+ that.computeDistance(
+ that.smoothHandle(positions),
+ 2,
+ that.options['words-name']
+ ).then(res => {
+ that.options.lengthByMeter = res
+ that.lengthUnit = that.options['length-unit']
+ syncData(that.sdk, that.options.id)
+ if (that.options.show) {
+ setSplitDirection(0, that.options.id)
+ }
+ })
// if (this.options['nose-to-tail']) {
// let array = []
@@ -1389,6 +1461,50 @@ class CurvelineObject extends Base {
})
}
+ let nameData = [
+ {
+ name: '空间长度',
+ value: '空间长度'
+ },
+ {
+ name: '投影长度',
+ value: '投影长度'
+ },
+ {
+ name: '地表长度',
+ value: '地表长度'
+ }
+ ]
+
+ let nameDataLegpObject = legp(
+ this._DialogObject._element.content.getElementsByClassName(
+ 'input-select-unit-box'
+ )[0],
+ '.input-select-unit'
+ )
+ if (nameDataLegpObject) {
+ nameDataLegpObject.legp_search(nameData)
+ let nameDataLegpElm = this._DialogObject._element.content
+ .getElementsByClassName('input-select-unit')[0]
+ .getElementsByTagName('input')[0]
+ this._elms.wordsName = [nameDataLegpElm]
+ nameDataLegpElm.value = this.options['words-name']
+ for (let i = 0; i < nameData.length; i++) {
+ if (nameData[i].value === nameDataLegpElm.value) {
+ nameDataLegpObject.legp_searchActive(nameData[i].value)
+ break
+ }
+ }
+ nameDataLegpElm.addEventListener('input', () => {
+ for (let i = 0; i < nameData.length; i++) {
+ if (nameData[i].value === nameDataLegpElm.value) {
+ this.wordsName = nameData[i].value
+ break
+ }
+ }
+ })
+ }
+
// 原始长度单位
let unitData = [
{
@@ -1405,12 +1521,13 @@ class CurvelineObject extends Base {
this._DialogObject._element.content.getElementsByClassName(
'input-select-unit-box'
)[0],
- '.input-select-unit'
+ '.input-select-unit',
+ 1
)
if (unitDataLegpObject) {
unitDataLegpObject.legp_search(unitData)
let unitDataLegpElm = this._DialogObject._element.content
- .getElementsByClassName('input-select-unit')[0]
+ .getElementsByClassName('input-select-unit')[1]
.getElementsByTagName('input')[0]
this._elms.lengthUnit = [unitDataLegpElm]
unitDataLegpElm.value = this.options['length-unit']
@@ -1431,45 +1548,45 @@ class CurvelineObject extends Base {
}
// 拟合长度单位
- let fitUnitData = [
- {
- name: '米',
- value: '米'
- },
- {
- name: '千米',
- value: '千米'
- }
- ]
+ // let fitUnitData = [
+ // {
+ // name: '米',
+ // value: '米'
+ // },
+ // {
+ // name: '千米',
+ // value: '千米'
+ // }
+ // ]
- let fitUnitDataLegpObject = legp(
- this._DialogObject._element.content.getElementsByClassName(
- 'input-select-fit-unit-box'
- )[0],
- '.input-select-fit-unit'
- )
- if (fitUnitDataLegpObject) {
- fitUnitDataLegpObject.legp_search(fitUnitData)
- let fitUnitDataLegpElm = this._DialogObject._element.content
- .getElementsByClassName('input-select-fit-unit')[0]
- .getElementsByTagName('input')[0]
- this._elms.fitLengthUnit = [fitUnitDataLegpElm]
- fitUnitDataLegpElm.value = this.options['fit-length-unit']
- for (let i = 0; i < fitUnitData.length; i++) {
- if (fitUnitData[i].value === fitUnitDataLegpElm.value) {
- fitUnitDataLegpObject.legp_searchActive(fitUnitData[i].value)
- break
- }
- }
- fitUnitDataLegpElm.addEventListener('input', () => {
- for (let i = 0; i < fitUnitData.length; i++) {
- if (fitUnitData[i].value === fitUnitDataLegpElm.value) {
- this.fitLengthUnit = fitUnitData[i].value
- break
- }
- }
- })
- }
+ // let fitUnitDataLegpObject = legp(
+ // this._DialogObject._element.content.getElementsByClassName(
+ // 'input-select-fit-unit-box'
+ // )[0],
+ // '.input-select-fit-unit'
+ // )
+ // if (fitUnitDataLegpObject) {
+ // fitUnitDataLegpObject.legp_search(fitUnitData)
+ // let fitUnitDataLegpElm = this._DialogObject._element.content
+ // .getElementsByClassName('input-select-fit-unit')[0]
+ // .getElementsByTagName('input')[0]
+ // this._elms.fitLengthUnit = [fitUnitDataLegpElm]
+ // fitUnitDataLegpElm.value = this.options['fit-length-unit']
+ // for (let i = 0; i < fitUnitData.length; i++) {
+ // if (fitUnitData[i].value === fitUnitDataLegpElm.value) {
+ // fitUnitDataLegpObject.legp_searchActive(fitUnitData[i].value)
+ // break
+ // }
+ // }
+ // fitUnitDataLegpElm.addEventListener('input', () => {
+ // for (let i = 0; i < fitUnitData.length; i++) {
+ // if (fitUnitData[i].value === fitUnitDataLegpElm.value) {
+ // this.fitLengthUnit = fitUnitData[i].value
+ // break
+ // }
+ // }
+ // })
+ // }
let lineTypeData = [
{
@@ -1848,22 +1965,74 @@ class CurvelineObject extends Base {
// 计算长度
- let array = []
- for (let i = 0; i < fromDegreesArray.length; i += 3) {
- array.push({
- lng: fromDegreesArray[i],
- lat: fromDegreesArray[i + 1],
- alt: fromDegreesArray[i + 2]
+ // let array = []
+ // for (let i = 0; i < fromDegreesArray.length; i += 3) {
+ // array.push({
+ // lng: fromDegreesArray[i],
+ // lat: fromDegreesArray[i + 1],
+ // alt: fromDegreesArray[i + 2]
+ // })
+ // }
+ // this.options.fitLengthByMeter = this.computeDistance2(
+ // array,
+ // 2,
+ // ground
+ // )
+ // this.fitLengthUnit = this.options['fit-length-unit']
+ // this.options.lengthByMeter = this.computeDistance2(this.smoothHandle(positions), 2, ground)
+ // this.lengthUnit = this.options['length-unit']
+
+
+ if (
+ (this.options['nose-to-tail'] &&
+ this.options['nose-to-tail'] !== 'false') ||
+ (this.options.smooth && this.options.smooth !== 'false')
+ ) {
+ let array = []
+ for (let i = 0; i < fromDegreesArray.length; i += 3) {
+ array.push({
+ lng: fromDegreesArray[i],
+ lat: fromDegreesArray[i + 1],
+ alt: fromDegreesArray[i + 2]
+ })
+ }
+ // this.options.fitLengthByMeter = this.computeDistance(
+ // array,
+ // 2,
+ // ground
+ // )
+ let _this = this
+ this.computeDistance(
+ array,
+ 2,
+ this.options['words-name']
+ ).then(res => {
+ _this.options.fitLengthByMeter = res
+ _this.lengthUnit = _this.options['length-unit']
+ })
+ } else {
+ let _this = this
+ this.computeDistance(
+ _this.smoothHandle(positions),
+ 2,
+ this.options['words-name']
+ ).then(res => {
+ _this.options.fitLengthByMeter = res
+ _this.lengthUnit = _this.options['length-unit']
+
})
}
- this.options.fitLengthByMeter = this.computeDistance2(
- array,
+
+ let _this = this
+ this.computeDistance(
+ this.smoothHandle(positions),
2,
- ground
- )
- this.fitLengthUnit = this.options['fit-length-unit']
- this.options.lengthByMeter = this.computeDistance2(this.smoothHandle(positions), 2, ground)
- this.lengthUnit = this.options['length-unit']
+ this.options['words-name']
+ ).then(res => {
+ _this.options.lengthByMeter = res
+ _this.lengthUnit = this.options['length-unit']
+ })
+
return fromDegreesArray
}
@@ -2035,7 +2204,7 @@ class CurvelineObject extends Base {
)[0].value
) {
this.options.attribute.vr.content.push({
- name: '全景图' ,
+ name: '全景图',
url: this._DialogObject._element.content.getElementsByClassName(
'vr_add'
)[0].value
@@ -2051,7 +2220,7 @@ class CurvelineObject extends Base {
addAttributeRr(vr) {
this.options.attribute.vr.content.push({
- name: '全景图' ,
+ name: '全景图',
url: vr
})
this.attributeVr = this.options.attribute.vr.content
diff --git a/src/Obj/Base/PolylineObject/index.js b/src/Obj/Base/PolylineObject/index.js
index 3d67234..2401abb 100644
--- a/src/Obj/Base/PolylineObject/index.js
+++ b/src/Obj/Base/PolylineObject/index.js
@@ -287,14 +287,16 @@ class PolylineObject extends Base {
2,
v
).then(res => {
+ // _this.options.lengthByMeter = res
+ // if (res > 1000 || res == 1000) {
+ // _this.length = (res / 1000).toFixed(5)
+ // _this.lengthUnit = '千米'
+ // } else {
+ // _this.length = res
+ // _this.lengthUnit = '米'
+ // }
_this.options.lengthByMeter = res
- if (res > 1000 || res == 1000) {
- _this.length = (res / 1000).toFixed(5)
- _this.lengthUnit = '千米'
- } else {
- _this.length = res
- _this.lengthUnit = '米'
- }
+ _this.lengthUnit = _this.options['length-unit']
})
} else {
let fromDegreesArray = this.renewPositions(this.options.positions)
@@ -479,24 +481,25 @@ class PolylineObject extends Base {
)
this.renewPolygon(fromDegreesArray)
}
- if (v) {
- if (this.options.fitLengthByMeter > 1000 || this.options.fitLengthByMeter == 1000) {
- let dom = document.getElementsByClassName('input-select-unit')[1]
- dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click()
- } else {
- let dom = document.getElementsByClassName('input-select-unit')[1]
- dom && dom.querySelectorAll('dd')[0] && dom.querySelectorAll('dd')[0].click()
- }
+ this.lengthUnit = this.options['length-unit']
+ // if (v) {
+ // if (this.options.fitLengthByMeter > 1000 || this.options.fitLengthByMeter == 1000) {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click()
+ // } else {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[0] && dom.querySelectorAll('dd')[0].click()
+ // }
- } else {
- if (this.options.lengthByMeter > 1000 || this.options.lengthByMeter == 1000) {
- let dom = document.getElementsByClassName('input-select-unit')[1]
- dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click()
- } else {
- let dom = document.getElementsByClassName('input-select-unit')[1]
- dom && dom.querySelectorAll('dd')[0] && dom.querySelectorAll('dd')[0].click()
- }
- }
+ // } else {
+ // if (this.options.lengthByMeter > 1000 || this.options.lengthByMeter == 1000) {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click()
+ // } else {
+ // let dom = document.getElementsByClassName('input-select-unit')[1]
+ // dom && dom.querySelectorAll('dd')[0] && dom.querySelectorAll('dd')[0].click()
+ // }
+ // }
}
get smooth() {