diff --git a/src/Obj/Base/PolylineObject/index.js b/src/Obj/Base/PolylineObject/index.js index 86b5b87..bf652c8 100644 --- a/src/Obj/Base/PolylineObject/index.js +++ b/src/Obj/Base/PolylineObject/index.js @@ -23,7 +23,7 @@ class PolylineObject extends Base { * @description 折线 * @param options {object} 线属性 * @param options.name{string} 名称 - * @param options.width=3{number} 线宽 + * @param options.width * @param options.width=3{number} 线宽 * @param options.color=#ff0000 {string} 颜色 * @param options.type=0 {number} 材质类型 0-实线 1-虚线 2-泛光 * @param options.heightMode=2{number} 高度模式(0:海拔高度;1:相对高度;2:依附模式) @@ -261,6 +261,7 @@ class PolylineObject extends Base { break default: this.length = this.noseToTail ? this.options.fitLengthByMeter : this.options.lengthByMeter + break } } else { let length = this.noseToTail ? this.options.fitLengthByMeter : this.options.lengthByMeter @@ -279,7 +280,6 @@ class PolylineObject extends Base { }) let _this = this - if (!this.noseToTail) { this.computeDistance( this.options.positions, @@ -294,12 +294,10 @@ class PolylineObject extends Base { _this.length = res _this.lengthUnit = '米' } - }) } else { - + let fromDegreesArray = this.renewPositions(this.options.positions) } - } get fitLengthUnit() { @@ -478,16 +476,20 @@ class PolylineObject extends Base { } if (v) { if (this.options.fitLengthByMeter > 1000 || this.options.fitLengthByMeter == 1000) { - document.getElementsByClassName('input-select-unit')[1].querySelectorAll('dd')[1].click() + let dom = document.getElementsByClassName('input-select-unit')[1] + dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click() } else { - document.getElementsByClassName('input-select-unit')[1].querySelectorAll('dd')[0].click() + 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) { - document.getElementsByClassName('input-select-unit')[1].querySelectorAll('dd')[1].click() + let dom = document.getElementsByClassName('input-select-unit')[1] + dom && dom.querySelectorAll('dd')[1] && dom.querySelectorAll('dd')[1].click() } else { - document.getElementsByClassName('input-select-unit')[1].querySelectorAll('dd')[0].click() + let dom = document.getElementsByClassName('input-select-unit')[1] + dom && dom.querySelectorAll('dd')[0] && dom.querySelectorAll('dd')[0].click() } } } @@ -554,7 +556,7 @@ class PolylineObject extends Base { // 2, // ground // ) - this.lengthUnit = this.lengthUnit + // this.lengthUnit = this.lengthUnit this._elms.heightMode && (this._elms.heightMode.value = heightModeName) this._elms.heightModeObject && (this._elms.heightModeObject.legp_searchActive( heightModeName @@ -810,29 +812,6 @@ class PolylineObject extends Base { }, //点击确认按钮事件回调 clear: () => { this.labelLineColor = 'rgba(0,255,255,0.5)' - } //点击清空按钮事件回调 - }) - this._elms.labelLineColor[i] = lineColorPicker - }) - } - } - - get labelBackgroundColorStart() { - return this.options.label.backgroundColor[0] - } - set labelBackgroundColorStart(v) { - this.options.label.backgroundColor[0] = v - this.label.backgroundColor = [v, this.label.backgroundColor[1]] - if (this._elms.labelBackgroundColorStart) { - this._elms.labelBackgroundColorStart.forEach((item, i) => { - let labelBackgroundColorStartPicker = new ewPlugins('colorpicker', { - el: item.el, - size: 'mini', //颜色box类型 - alpha: true, //是否开启透明度 - defaultColor: this.labelBackgroundColorStart, - disabled: false, //是否禁止打开颜色选择器 - openPickerAni: 'opacity', //打开颜色选择器动画 - sure: color => { this.labelBackgroundColorStart = color }, //点击确认按钮事件回调 clear: () => { @@ -2178,7 +2157,8 @@ class PolylineObject extends Base { 2, this.options['words-name'] ).then(res => { - _this.options.fitLengthByMeter + _this.options.fitLengthByMeter = res + _this.lengthUnit = _this.options['length-unit'] }) } else { let _this = this @@ -2187,17 +2167,18 @@ class PolylineObject extends Base { 2, this.options['words-name'] ).then(res => { - _this.options.fitLengthByMeter + _this.options.fitLengthByMeter = res + _this.lengthUnit = _this.options['length-unit'] }) } - this.fitLengthUnit = this.options['fit-length-unit'] + let _this = this this.computeDistance( positions, 2, this.options['words-name'] ).then(res => { - _this.options.lengthByMeter + _this.options.lengthByMeter = res _this.lengthUnit = this.options['length-unit'] }) return fromDegreesArray diff --git a/src/Tools/index.js b/src/Tools/index.js index 95fad91..8d3ba38 100644 --- a/src/Tools/index.js +++ b/src/Tools/index.js @@ -212,22 +212,12 @@ class Tools { arr.push(r) } let l = arr.length - 1 - arr.forEach((item, index) => { - if (index !== l) { - let posi = [item.position, arr[index + 1].position] - let d1 = 0 - for (let i = 0; i < posi.length - 1; i++) { - const position1 = Cesium.Cartesian3.fromDegrees(posi[i].lng, posi[i].lat, posi[i].alt); - const position2 = Cesium.Cartesian3.fromDegrees(posi[i + 1].lng, posi[i + 1].lat, posi[i + 1].alt); - const distance = Cesium.Cartesian3.distance(position1, position2); - d1 = d1 + distance - } - - let d2 = Math.abs(item.position.alt - arr[index + 1].position.alt) - let d3 = Math.sqrt(d1 * d1 + d2 * d2) - length += d3 - } - }) + for (let i = 0; i < arr.length - 1; i++) { + const position1 = Cesium.Cartesian3.fromDegrees(arr[i].position.lng, arr[i].position.lat, 0); + const position2 = Cesium.Cartesian3.fromDegrees(arr[i + 1].position.lng, arr[i + 1].position.lat, 0); + const distance = Cesium.Cartesian3.distance(position1, position2); + length = length + distance + } break default: break; @@ -1273,7 +1263,7 @@ class Tools { replaceHost(url, host) { let newUrl = url - if(!url || !host) { + if (!url || !host) { return url } try { diff --git a/static/img/arrow/1.png b/static/img/arrow/1.png index a959a24..650bc1f 100644 Binary files a/static/img/arrow/1.png and b/static/img/arrow/1.png differ diff --git a/static/img/arrow/2.png b/static/img/arrow/2.png index 1c1985a..a92774d 100644 Binary files a/static/img/arrow/2.png and b/static/img/arrow/2.png differ diff --git a/static/img/arrow/3.png b/static/img/arrow/3.png index 895389c..ffd053d 100644 Binary files a/static/img/arrow/3.png and b/static/img/arrow/3.png differ diff --git a/static/img/arrow/4.png b/static/img/arrow/4.png index dcd6705..b3cbe70 100644 Binary files a/static/img/arrow/4.png and b/static/img/arrow/4.png differ diff --git a/static/img/arrow/5.png b/static/img/arrow/5.png index f444e83..374af4a 100644 Binary files a/static/img/arrow/5.png and b/static/img/arrow/5.png differ diff --git a/static/img/arrow/6.png b/static/img/arrow/6.png index a1b7f9a..eca7083 100644 Binary files a/static/img/arrow/6.png and b/static/img/arrow/6.png differ