淹没分析
This commit is contained in:
@ -181,7 +181,7 @@ const MouseCoordinate = (sdk, status) => {
|
|||||||
// contentElm.innerHTML = `<div style='width: 150px;position: absolute; z-index: 777; color: #ff0000; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>经度:${degrees.lng.toFixed(6)}°</p><p style='margin: 0;'>维度:${degrees.lat.toFixed(6)}°</p><p style='margin: 0;'>海拔:${degrees.alt.toFixed(2)} m</p></div>`
|
// contentElm.innerHTML = `<div style='width: 150px;position: absolute; z-index: 777; color: #ff0000; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>经度:${degrees.lng.toFixed(6)}°</p><p style='margin: 0;'>维度:${degrees.lat.toFixed(6)}°</p><p style='margin: 0;'>海拔:${degrees.alt.toFixed(2)} m</p></div>`
|
||||||
switch (positionType || '度') {
|
switch (positionType || '度') {
|
||||||
case '度':
|
case '度':
|
||||||
contentElm.innerHTML = `<div class='mousePosiWords' style='width: 150px;position: absolute; z-index: 777; color: #ffffff; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>经度:${degrees.lng.toFixed(6)}°</p><p style='margin: 0;'>维度:${degrees.lat.toFixed(6)}°</p><p style='margin: 0;'>海拔:${degrees.alt.toFixed(2)} m</p></div>`
|
contentElm.innerHTML = `<div class='mousePosiWords' style='width: 150px;position: absolute; z-index: 777; color: #ffffff; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>经度:${degrees.lng.toFixed(8)}°</p><p style='margin: 0;'>维度:${degrees.lat.toFixed(8)}°</p><p style='margin: 0;'>海拔:${degrees.alt.toFixed(2)} m</p></div>`
|
||||||
break;
|
break;
|
||||||
case '度分':
|
case '度分':
|
||||||
contentElm.innerHTML = `<div class='mousePosiWords' style='width: 150px;position: absolute; z-index: 777; color: #ffffff; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>经度:${proj.degreesToDMS(degrees.lng, true)}</p><p style='margin: 0;'>维度:${proj.degreesToDMS(degrees.lat, true)}</p><p style='margin: 0;'>海拔:${degrees.alt.toFixed(2)} m</p></div>`
|
contentElm.innerHTML = `<div class='mousePosiWords' style='width: 150px;position: absolute; z-index: 777; color: #ffffff; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>经度:${proj.degreesToDMS(degrees.lng, true)}</p><p style='margin: 0;'>维度:${proj.degreesToDMS(degrees.lat, true)}</p><p style='margin: 0;'>海拔:${degrees.alt.toFixed(2)} m</p></div>`
|
||||||
@ -197,7 +197,7 @@ const MouseCoordinate = (sdk, status) => {
|
|||||||
// let result = tools.convert([{ x: degrees.lng, y: degrees.lat, z: degrees.alt }], 'EPSG:4326', coordinateSystem)
|
// let result = tools.convert([{ x: degrees.lng, y: degrees.lat, z: degrees.alt }], 'EPSG:4326', coordinateSystem)
|
||||||
let result = tools.convert([{ x: degrees.lng, y: degrees.lat, z: degrees.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, degrees))
|
let result = tools.convert([{ x: degrees.lng, y: degrees.lat, z: degrees.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, degrees))
|
||||||
position = result.points[0]
|
position = result.points[0]
|
||||||
contentElm.innerHTML = `<div class='mousePosiWords' style='width: 150px;position: absolute; z-index: 777; color: #ffffff; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>x:${position.x.toFixed(6)}</p><p style='margin: 0;'>y:${position.y.toFixed(6)}</p><p style='margin: 0;'>z:${position.z.toFixed(6)}</p></div>`
|
contentElm.innerHTML = `<div class='mousePosiWords' style='width: 150px;position: absolute; z-index: 777; color: #ffffff; font-size: 12px; left:${left + 20}px; top:${top + 10}px;'><p style='margin: 0;'>x:${position.x.toFixed(2)}</p><p style='margin: 0;'>y:${position.y.toFixed(2)}</p><p style='margin: 0;'>z:${position.z.toFixed(2)}</p></div>`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -207,8 +207,8 @@ function CesiumContainer(sdk, options) {
|
|||||||
switch (positionType || '度') {
|
switch (positionType || '度') {
|
||||||
case '度':
|
case '度':
|
||||||
infoElm.innerHTML = `
|
infoElm.innerHTML = `
|
||||||
<div><span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span></div>
|
<div><span>经度:</span><span>${Number(position.lng.toFixed(8))}° </span></div>
|
||||||
<div><span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span></div>
|
<div><span>纬度:</span><span>${Number(position.lat.toFixed(8))}° </span></div>
|
||||||
<div><span>高程:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
|
<div><span>高程:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
|
||||||
`
|
`
|
||||||
break;
|
break;
|
||||||
@ -235,9 +235,9 @@ function CesiumContainer(sdk, options) {
|
|||||||
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, position))
|
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, position))
|
||||||
if (result.points.length) {
|
if (result.points.length) {
|
||||||
infoElm.innerHTML = `
|
infoElm.innerHTML = `
|
||||||
<div><span>x:</span><span>${Number(result.points[0].x.toFixed(6))}</span></div>
|
<div><span>x:</span><span>${Number(result.points[0].x.toFixed(2))}</span></div>
|
||||||
<div><span style="margin-left: 5px;">y:</span><span>${Number(result.points[0].y.toFixed(6))}</span></div>
|
<div><span>y:</span><span>${Number(result.points[0].y.toFixed(2))}</span></div>
|
||||||
<div><span style="margin-left: 5px;">z:</span><span>${Number(result.points[0].z.toFixed(6))}</span></div>
|
<div><span>z:</span><span>${Number(result.points[0].z.toFixed(2))}</span></div>
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -783,8 +783,8 @@ function setCoordinateSystem(sdk, epsg) {
|
|||||||
switch (positionType || '度') {
|
switch (positionType || '度') {
|
||||||
case '度':
|
case '度':
|
||||||
infoElm.innerHTML = `
|
infoElm.innerHTML = `
|
||||||
<div><span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span></div>
|
<div><span>经度:</span><span>${Number(position.lng.toFixed(8))}° </span></div>
|
||||||
<div><span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span></div>
|
<div><span>纬度:</span><span>${Number(position.lat.toFixed(8))}° </span></div>
|
||||||
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
|
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
|
||||||
`
|
`
|
||||||
break;
|
break;
|
||||||
@ -810,9 +810,9 @@ function setCoordinateSystem(sdk, epsg) {
|
|||||||
// let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', coordinateSystem)
|
// let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', coordinateSystem)
|
||||||
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, position))
|
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, position))
|
||||||
infoElm.innerHTML = `
|
infoElm.innerHTML = `
|
||||||
<div><span>x:</span><span>${Number(result.points[0].x.toFixed(6))}</span></div>
|
<div><span>x:</span><span>${Number(result.points[0].x.toFixed(2))}</span></div>
|
||||||
<div><span style="margin-left: 5px;">y:</span><span>${Number(result.points[0].y.toFixed(6))}</span></div>
|
<div><span>y:</span><span>${Number(result.points[0].y.toFixed(2))}</span></div>
|
||||||
<div><span style="margin-left: 5px;">z:</span><span>${Number(result.points[0].z.toFixed(6))}</span></div>
|
<div><span>z:</span><span>${Number(result.points[0].z.toFixed(2))}</span></div>
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@ class Submerge extends Tools {
|
|||||||
* @param sdk
|
* @param sdk
|
||||||
* @description 淹没效果
|
* @description 淹没效果
|
||||||
* */
|
* */
|
||||||
constructor(sdk, options = {}, _Dialog = {}) {
|
constructor(sdk, options = {}, _Dialog = {}, callback) {
|
||||||
super(sdk, options);
|
super(sdk, options);
|
||||||
this.sdk = sdk
|
this.sdk = sdk
|
||||||
this.options = {}
|
this.options = {}
|
||||||
@ -27,6 +27,7 @@ class Submerge extends Tools {
|
|||||||
this.area = 0
|
this.area = 0
|
||||||
this._elms = {};
|
this._elms = {};
|
||||||
this.tools = new Tools(this.sdk)
|
this.tools = new Tools(this.sdk)
|
||||||
|
this.callback = callback
|
||||||
YJ.Analysis.AnalysesResults.push(this)
|
YJ.Analysis.AnalysesResults.push(this)
|
||||||
// Submerge.EditBox(this)
|
// Submerge.EditBox(this)
|
||||||
// Submerge.create(this)
|
// Submerge.create(this)
|
||||||
@ -276,6 +277,7 @@ class Submerge extends Tools {
|
|||||||
value = 0
|
value = 0
|
||||||
}
|
}
|
||||||
that.options.waterVolume = Math.floor(value * 10000) / 10000;
|
that.options.waterVolume = Math.floor(value * 10000) / 10000;
|
||||||
|
|
||||||
if (that.area) {
|
if (that.area) {
|
||||||
that.waterLevel = Number((that.options.waterVolume / that.area).toFixed(4))
|
that.waterLevel = Number((that.options.waterVolume / that.area).toFixed(4))
|
||||||
that.options.maxWaterLevel = that.options.minWaterLevel + that.waterLevel
|
that.options.maxWaterLevel = that.options.minWaterLevel + that.waterLevel
|
||||||
@ -338,7 +340,6 @@ class Submerge extends Tools {
|
|||||||
}
|
}
|
||||||
set onEnd(val) {
|
set onEnd(val) {
|
||||||
if (val && typeof val !== 'function') {
|
if (val && typeof val !== 'function') {
|
||||||
console.error('val:', val, '不是一个function')
|
|
||||||
} else {
|
} else {
|
||||||
this.clickCallBack = val
|
this.clickCallBack = val
|
||||||
}
|
}
|
||||||
@ -387,11 +388,17 @@ class Submerge extends Tools {
|
|||||||
// if (this.TweenAnimate) {
|
// if (this.TweenAnimate) {
|
||||||
// TWEEN.remove(this.TweenAnimate)
|
// TWEEN.remove(this.TweenAnimate)
|
||||||
// }
|
// }
|
||||||
if (!this.TweenAnimate) {
|
let that = this
|
||||||
|
if (!this.TweenAnimate && this.options.risingSpeed) {
|
||||||
let totalTime = ((this.options.maxWaterLevel - this.options.minWaterLevel) / this.options.risingSpeed) * 1000
|
let totalTime = ((this.options.maxWaterLevel - this.options.minWaterLevel) / this.options.risingSpeed) * 1000
|
||||||
this.TweenAnimate = new TWEEN.Tween({ waterLevel: this.options.minWaterLevel }).to({ waterLevel: this.options.maxWaterLevel }, totalTime).delay(this.delay).easing(TWEEN.Easing.Linear.None).onUpdate(async (r, a) => {
|
this.TweenAnimate = new TWEEN.Tween({ waterLevel: this.options.minWaterLevel }).to({ waterLevel: this.options.maxWaterLevel }, totalTime).delay(this.delay).easing(TWEEN.Easing.Linear.None).onUpdate(async (r, a) => {
|
||||||
this.currentWaterLaver = r.waterLevel
|
this.currentWaterLaver = r.waterLevel
|
||||||
|
}).onComplete(() => {
|
||||||
|
that.callback()
|
||||||
|
// 在这里执行动画结束后的逻辑
|
||||||
}).start()
|
}).start()
|
||||||
|
} else if (!this.options.risingSpeed) {
|
||||||
|
that.callback()
|
||||||
}
|
}
|
||||||
// let contentElm = this._DialogObject._element.body
|
// let contentElm = this._DialogObject._element.body
|
||||||
// let pauseBtn = contentElm.getElementsByClassName('pause')[0];
|
// let pauseBtn = contentElm.getElementsByClassName('pause')[0];
|
||||||
@ -403,6 +410,7 @@ class Submerge extends Tools {
|
|||||||
restart() {
|
restart() {
|
||||||
this.currentWaterLaver = this.options.minWaterLevel
|
this.currentWaterLaver = this.options.minWaterLevel
|
||||||
let isPaused = false
|
let isPaused = false
|
||||||
|
let that = this
|
||||||
if (this.TweenAnimate) {
|
if (this.TweenAnimate) {
|
||||||
isPaused = this.TweenAnimate._isPaused
|
isPaused = this.TweenAnimate._isPaused
|
||||||
TWEEN.remove(this.TweenAnimate)
|
TWEEN.remove(this.TweenAnimate)
|
||||||
@ -410,6 +418,9 @@ class Submerge extends Tools {
|
|||||||
let totalTime = ((this.options.maxWaterLevel - this.options.minWaterLevel) / this.options.risingSpeed) * 1000
|
let totalTime = ((this.options.maxWaterLevel - this.options.minWaterLevel) / this.options.risingSpeed) * 1000
|
||||||
this.TweenAnimate = new TWEEN.Tween({ waterLevel: this.options.minWaterLevel }).to({ waterLevel: this.options.maxWaterLevel }, totalTime).delay(this.delay).easing(TWEEN.Easing.Linear.None).onUpdate(async (r, a) => {
|
this.TweenAnimate = new TWEEN.Tween({ waterLevel: this.options.minWaterLevel }).to({ waterLevel: this.options.maxWaterLevel }, totalTime).delay(this.delay).easing(TWEEN.Easing.Linear.None).onUpdate(async (r, a) => {
|
||||||
this.currentWaterLaver = r.waterLevel
|
this.currentWaterLaver = r.waterLevel
|
||||||
|
}).onComplete(() => {
|
||||||
|
that.callback()
|
||||||
|
// 在这里执行动画结束后的逻辑
|
||||||
}).start()
|
}).start()
|
||||||
// if (isPaused) {
|
// if (isPaused) {
|
||||||
this.pause()
|
this.pause()
|
||||||
|
|||||||
Reference in New Issue
Block a user