添加曲线单位修改
This commit is contained in:
@ -9,22 +9,15 @@ function html(that) {
|
||||
<span class="label">名称</span>
|
||||
<input class="input" maxlength="40" type="text" @model="name">
|
||||
</div>
|
||||
<div class="col" style="flex: 0 0 54%;">
|
||||
<div class="col" style="flex: 0 0 56%;">
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col input-select-unit-box">
|
||||
<span class="label">原始长度:</span>
|
||||
<div class="input-select-unit"></div>
|
||||
<input class="input input-text" readonly="readonly" type="text" style="flex: 0 0 130px;" @model="length">
|
||||
<div class="input-select-unit"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col input-select-fit-unit-box">
|
||||
<span class="label">拟合长度:</span>
|
||||
<input class="input input-text" readonly="readonly" type="text" style="flex: 0 0 130px;" @model="fitLength">
|
||||
<div class="input-select-fit-unit"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -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,22 +198,57 @@ 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) {
|
||||
if (this.unitNum > 2) {
|
||||
switch (v) {
|
||||
case '米':
|
||||
this.length = this.options.lengthByMeter
|
||||
this.length = this.noseToTail ? this.options.fitLengthByMeter : this.options.lengthByMeter
|
||||
|
||||
break
|
||||
case '千米':
|
||||
this.length = (this.options.lengthByMeter / 1000).toFixed(5)
|
||||
this.length = this.noseToTail ? (this.options.fitLengthByMeter / 1000).toFixed(5) : (this.options.lengthByMeter / 1000).toFixed(5)
|
||||
|
||||
break
|
||||
default:
|
||||
this.length = this.options.lengthByMeter
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
@ -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.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,6 +1965,29 @@ 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]
|
||||
// })
|
||||
// }
|
||||
// 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({
|
||||
@ -1856,14 +1996,43 @@ class CurvelineObject extends Base {
|
||||
alt: fromDegreesArray[i + 2]
|
||||
})
|
||||
}
|
||||
this.options.fitLengthByMeter = this.computeDistance2(
|
||||
// this.options.fitLengthByMeter = this.computeDistance(
|
||||
// array,
|
||||
// 2,
|
||||
// ground
|
||||
// )
|
||||
let _this = this
|
||||
this.computeDistance(
|
||||
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']
|
||||
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']
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
let _this = this
|
||||
this.computeDistance(
|
||||
this.smoothHandle(positions),
|
||||
2,
|
||||
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
|
||||
|
@ -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() {
|
||||
|
Reference in New Issue
Block a user