This commit is contained in:
zh
2025-09-05 18:45:14 +08:00
14 changed files with 1136 additions and 941 deletions

View File

@ -15,7 +15,7 @@ let activeHeightElm = null;
let tools let tools
let _sdk let _sdk
let secondaryLinesCount = 19 let secondaryLinesCount = 19
let show = false let show = true
let equalHeightDistance = 10 let equalHeightDistance = 10
let activeColor = '#ffd000' let activeColor = '#ffd000'
let indexContourShow = true let indexContourShow = true
@ -86,20 +86,21 @@ async function dialog(sdk) {
tools = new Tools(sdk) tools = new Tools(sdk)
} }
_DialogObject = await new Dialog(sdk, {}, { // _DialogObject = await new Dialog(sdk, {}, {
title: "全局等高线", left: '180px', // title: "全局等高线", left: '180px',
top: '100px', // top: '100px',
closeCallBack: () => { // closeCallBack: () => {
_DialogObject = null // _DialogObject = null
} // }
}); // });
_DialogObject._element.body.className = // _DialogObject._element.body.className =
_DialogObject._element.body.className + ' contour' // _DialogObject._element.body.className + ' contour'
let contentElm = document.createElement('div') // let contentElm = document.createElement('div')
contentElm.innerHTML = html(this) // contentElm.innerHTML = html(this)
_DialogObject.contentAppChild(contentElm) // _DialogObject.contentAppChild(contentElm)
let contentElm = document.getElementsByClassName('contour')[0]
sdk.viewer.scene.postRender.removeEventListener(accordingToCameraHeight) sdk.viewer.scene.postRender.removeEventListener(accordingToCameraHeight)
sdk.viewer.scene.postRender.addEventListener(accordingToCameraHeight) sdk.viewer.scene.postRender.addEventListener(accordingToCameraHeight)
@ -107,6 +108,21 @@ async function dialog(sdk) {
// 显示 // 显示
let showBtn = contentElm.getElementsByClassName('show')[0] let showBtn = contentElm.getElementsByClassName('show')[0]
showBtn.checked = show showBtn.checked = show
if (showBtn.checked) {
let height = sdk.viewer.camera.positionCartographic.height
if (height > 16360) {
let cartographic = sdk.viewer.camera.positionCartographic
let options = {
position: {
lng: Cesium.Math.toDegrees(cartographic.longitude),
lat: Cesium.Math.toDegrees(cartographic.latitude),
alt: 16360,
},
}
flyTo(sdk, options, 0.5)
}
showContour(sdk)
}
showBtn.addEventListener('change', (e) => { showBtn.addEventListener('change', (e) => {
if (e.target.checked) { if (e.target.checked) {
show = true show = true
@ -473,7 +489,7 @@ czm_material czm_getMaterial(czm_materialInput materialInput)
// 主等高线计算 // 主等高线计算
float distanceToMainContour = mod(materialInput.height, spacing); float distanceToMainContour = mod(materialInput.height, spacing);
// 抗锯齿计算 // 抗锯齿计算
#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
float dxc = abs(dFdx(materialInput.height)); float dxc = abs(dFdx(materialInput.height));
@ -493,11 +509,11 @@ czm_material czm_getMaterial(czm_materialInput materialInput)
// 计算当前高度所属的等高线高度 // 计算当前高度所属的等高线高度
float mainContourHeight = floor(materialInput.height / spacing) * spacing; float mainContourHeight = floor(materialInput.height / spacing) * spacing;
float secondaryContourHeight = floor(materialInput.height / spacing * (secondaryLinesCount + 1.0)) * spacing / (secondaryLinesCount + 1.0); float secondaryContourHeight = floor(materialInput.height / spacing * (secondaryLinesCount + 1.0)) * spacing / (secondaryLinesCount + 1.0);
// 计算次线在两条主等高线之间的相对位置 // 计算次线在两条主等高线之间的相对位置
float relativeHeight = materialInput.height - mainContourHeight; float relativeHeight = materialInput.height - mainContourHeight;
float normalizedPosition = relativeHeight / spacing; float normalizedPosition = relativeHeight / spacing;
// 计算次线索引(从主等高线开始计数) // 计算次线索引(从主等高线开始计数)
float lineIndex = floor(normalizedPosition * (secondaryLinesCount + 1.0)); float lineIndex = floor(normalizedPosition * (secondaryLinesCount + 1.0));
@ -506,7 +522,7 @@ czm_material czm_getMaterial(czm_materialInput materialInput)
float secondaryLinesWidth = supplementaryContourWidth; float secondaryLinesWidth = supplementaryContourWidth;
secondarySpacing = spacing / (secondaryLinesCount + 1.0); secondarySpacing = spacing / (secondaryLinesCount + 1.0);
float distanceToSecondaryContour = mod(materialInput.height, secondarySpacing); float distanceToSecondaryContour = mod(materialInput.height, secondarySpacing);
// 确保次线不会与主线重叠 // 确保次线不会与主线重叠
float minDistanceToMain = min(distanceToMainContour, spacing - distanceToMainContour); float minDistanceToMain = min(distanceToMainContour, spacing - distanceToMainContour);
bool notCloseToMain = minDistanceToMain > dFMain * 2.0; // 2倍线宽缓冲 bool notCloseToMain = minDistanceToMain > dFMain * 2.0; // 2倍线宽缓冲
@ -532,7 +548,7 @@ czm_material czm_getMaterial(czm_materialInput materialInput)
#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
dFSecondary = max(dxc, dyc) * czm_pixelRatio * secondaryLinesWidth; dFSecondary = max(dxc, dyc) * czm_pixelRatio * secondaryLinesWidth;
#else #else

View File

@ -5,7 +5,7 @@
import Dialog from '../../BaseDialog'; import Dialog from '../../BaseDialog';
import { html } from "./_element"; import { html } from "./_element";
import Tools from "../../Tools"; import Tools from "../../Tools";
import { closeRotateAround, closeViewFollow} from '../../Global/global' import { closeRotateAround, closeViewFollow } from '../../Global/global'
let _DialogObject = null let _DialogObject = null
let clickHandler let clickHandler
let repeat = 0 let repeat = 0
@ -13,32 +13,33 @@ let currentRepeat = 0
const open = async (sdk, options = {}, _Dialog = {}) => { const open = async (sdk, options = {}, _Dialog = {}) => {
let name = options.name || '漫游路径' let name = options.name || '飞线漫游'
options.points || (options.points = []) options.points || (options.points = [])
if(options.repeat) { if (options.repeat) {
repeat = Number(options.repeat) repeat = Number(options.repeat)
} }
let viewer = sdk.viewer let viewer = sdk.viewer
let tools = new Tools(sdk) let tools = new Tools(sdk)
let active = 0 let active = 0
if (_DialogObject && _DialogObject.close) { // if (_DialogObject && _DialogObject.close) {
_DialogObject.close() // _DialogObject.close()
_DialogObject = null // _DialogObject = null
} // }
_DialogObject = await new Dialog(viewer._container, { // _DialogObject = await new Dialog(viewer._container, {
title: '飞行漫游', left: '180px', top: '100px', // title: '飞行漫游', left: '180px', top: '100px',
closeCallBack: () => { // closeCallBack: () => {
cease({ viewer }) // cease({ viewer })
}, // },
}) // })
await _DialogObject.init() // await _DialogObject.init()
let contentElm = document.createElement('div'); // let contentElm = document.createElement('div');
contentElm.className = 'fly-roam' // contentElm.className = 'fly-roam'
contentElm.innerHTML = html() // contentElm.innerHTML = html()
_DialogObject.contentAppChild(contentElm) // _DialogObject.contentAppChild(contentElm)
let contentElm = document.getElementsByClassName('fly-roam')[0]
let all_elm = contentElm.getElementsByTagName("*") let all_elm = contentElm.getElementsByTagName("*")
// EventBinding(all_elm) // EventBinding(all_elm)
@ -84,15 +85,15 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
points.map((item) => { points.map((item) => {
newPoints.push(item) newPoints.push(item)
}) })
_Dialog.clickSavePath && _Dialog.clickSavePath( // _Dialog.clickSavePath && _Dialog.clickSavePath(
{ // {
name: name, // name: name,
points: newPoints, // points: newPoints,
repeat: repeat+'' // repeat: repeat + ''
} // }
) // )
}) })
_DialogObject.footAppChild(addListBtn) // _DialogObject.footAppChild(addListBtn)
let endBtn = contentElm.getElementsByClassName('cease')[0] let endBtn = contentElm.getElementsByClassName('cease')[0]
endBtn.addEventListener('click', () => { endBtn.addEventListener('click', () => {
@ -135,7 +136,7 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
pitch: viewer.camera.pitch, pitch: viewer.camera.pitch,
roll: viewer.camera.roll roll: viewer.camera.roll
} }
tools.message({text: '操作成功'}) tools.message({ text: '操作成功' })
}) })
let totalTimeElm = contentElm.querySelector("input[name='totalTime']") let totalTimeElm = contentElm.querySelector("input[name='totalTime']")
@ -248,7 +249,7 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
for (let m = 0; m < trList.length; m++) { for (let m = 0; m < trList.length; m++) {
if (trList[m] === e_delete.parentNode.parentNode) { if (trList[m] === e_delete.parentNode.parentNode) {
points.splice(m, 1) points.splice(m, 1)
points[points.length-1] && (points[points.length-1].duration = 0) points[points.length - 1] && (points[points.length - 1].duration = 0)
tableBody.removeChild(tr) tableBody.removeChild(tr)
if (active > m + 1) { if (active > m + 1) {
active-- active--
@ -307,10 +308,20 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
} }
const close = () => { const close = () => {
if (_DialogObject && _DialogObject.close) { // if (_DialogObject && _DialogObject.close) {
_DialogObject.close() // _DialogObject.close()
_DialogObject = null // _DialogObject = null
// }
let contentElm = document.getElementsByClassName('fly-roam')[0]
let tableBody = contentElm.getElementsByClassName('table-body')[0];
let trList = tableBody.getElementsByClassName('tr')
for (let i = trList.length - 1; i >= 0; i--) {
tableBody.removeChild(trList[i])
} }
repeat = 0
currentRepeat = 0
} }
const executeFlyTo = (sdk, points = [], index = 0, noStart) => { const executeFlyTo = (sdk, points = [], index = 0, noStart) => {
@ -387,4 +398,4 @@ const cease = (sdk) => {
} }
} }
export { open, close, flyTo, setRepeat, cease } export { open, close, flyTo, setRepeat, cease }

View File

@ -35,12 +35,12 @@ class CircleViewShed extends Tools {
this.Dialog = _Dialog this.Dialog = _Dialog
this._EventBinding = new EventBinding() this._EventBinding = new EventBinding()
this.html = null this.html = null
let tools = new Tools(sdk) this.tools = new Tools(sdk)
YJ.Analysis.AnalysesResults.push(this) YJ.Analysis.AnalysesResults.push(this)
// CircleViewShed.edit(this) // CircleViewShed.edit(this)
let terrainAvailability = this.viewer.terrainProvider.availability; let terrainAvailability = this.viewer.terrainProvider.availability;
if (!terrainAvailability) { if (!terrainAvailability) {
tools.message({ type: 'warning', text: '未加载地形数据!' }) this.tools.message({ type: 'warning', text: '未加载地形数据!' })
// window.ELEMENT && window.ELEMENT.Message({ // window.ELEMENT && window.ELEMENT.Message({
// message: '未加载地形数据!', // message: '未加载地形数据!',
// type: 'warning', // type: 'warning',
@ -48,6 +48,9 @@ class CircleViewShed extends Tools {
// }); // });
return return
} }
// CircleViewShed.create(this)
}
draw() {
CircleViewShed.create(this) CircleViewShed.create(this)
} }
@ -69,6 +72,20 @@ class CircleViewShed extends Tools {
item.value = viewPointHeight item.value = viewPointHeight
}) })
} }
get viewPointHeights() {
return this.viewPointHeight
}
set viewPointHeights(v) {
let viewPointHeight = Math.floor(Number(v) * 10) / 10
if (isNaN(viewPointHeight)) {
viewPointHeight = 1.8
}
if (viewPointHeight < 0) {
viewPointHeight = 0
}
this.viewPointHeight = viewPointHeight
}
get precision() { get precision() {
return this.options.precision return this.options.precision
@ -87,8 +104,25 @@ class CircleViewShed extends Tools {
item.value = precision item.value = precision
}) })
} }
get precisions() {
return this.precision
}
set precisions(val) {
this.precision = val
}
static create(that) { static create(that) {
let terrainAvailability = that.viewer.terrainProvider.availability;
if (!terrainAvailability) {
that.tools.message({ type: 'warning', text: '未加载地形数据!' })
// window.ELEMENT && window.ELEMENT.Message({
// message: '未加载地形数据!',
// type: 'warning',
// duration: 1500
// });
return
}
let count = 0 let count = 0
if (!YJ.Measure.GetMeasureStatus()) { if (!YJ.Measure.GetMeasureStatus()) {
if (that._DialogObject && that._DialogObject.close) { if (that._DialogObject && that._DialogObject.close) {

View File

@ -4,19 +4,15 @@ import Tools from '../../../Tools';
class ContourAnalysis { class ContourAnalysis {
/** /**
* @constructor 等高线分析 * @constructor 等高线分析
* @param sdk * @param sdk
* **/ * **/
constructor(sdk, options = {}) { constructor(sdk, options = {}) {
this.viewer = sdk.viewer this.viewer = sdk.viewer
this.tools = new Tools(sdk)
let terrainAvailability = this.viewer.terrainProvider.availability; let terrainAvailability = this.viewer.terrainProvider.availability;
if (!terrainAvailability) { if (!terrainAvailability) {
this.error = '未加载地形数据!' this.error = '未加载地形数据!'
window.ELEMENT && window.ELEMENT.Message({ this.tools.message({ type: 'warning', text: this.error })
message: '未加载地形数据!',
type: 'warning',
duration: 1500
});
console.warn(this.error)
return return
} }
this.positions = options.positions this.positions = options.positions
@ -153,7 +149,7 @@ class ContourAnalysis {
// }, // },
// })) // }))
// element.label = new Cesium.LabelGraphics({ // element.label = new Cesium.LabelGraphics({
// }) // })
let cur_index = that.getObjectIndex( let cur_index = that.getObjectIndex(
breaks, breaks,
@ -178,7 +174,7 @@ class ContourAnalysis {
} }
let line = turf.lineString(array); let line = turf.lineString(array);
let distance = turf.length(line, { units: "kilometers" }); let distance = turf.length(line, { units: "kilometers" });
let along = turf.along(line, distance/2, { units: "kilometers" }); let along = turf.along(line, distance / 2, { units: "kilometers" });
return Cesium.Cartesian3.fromDegrees(along.geometry.coordinates[0], along.geometry.coordinates[1], 0); return Cesium.Cartesian3.fromDegrees(along.geometry.coordinates[0], along.geometry.coordinates[1], 0);
} }
} }
@ -210,4 +206,4 @@ class ContourAnalysis {
this.countorLineList = []; this.countorLineList = [];
} }
} }
export default ContourAnalysis; export default ContourAnalysis;

View File

@ -1,12 +1,13 @@
import Dialog from '../../../BaseDialog'; import Dialog from '../../../BaseDialog';
import { html } from "./_element"; import { html } from "./_element";
import Tools from "../../../Tools";
// import CreatePolygon from "./CreatePolygon"; // import CreatePolygon from "./CreatePolygon";
import DrawPolygon from "../../../Draw/drawPolygon" import DrawPolygon from "../../../Draw/drawPolygon"
class CutFillAnalysis { class CutFillAnalysis {
/** /**
* @constructor 填挖方分析 * @constructor 填挖方分析
* @param sdk * @param sdk
* **/ * **/
constructor(sdk, options = {}, _Dialog = {}) { constructor(sdk, options = {}, _Dialog = {}) {
this.sdk = sdk; this.sdk = sdk;
@ -26,21 +27,20 @@ class CutFillAnalysis {
noArea: "", noArea: "",
} }
this.entities = [] this.entities = []
this.tools = new Tools(this.sdk)
this.Draw = new DrawPolygon(this.sdk) this.Draw = new DrawPolygon(this.sdk)
YJ.Analysis.AnalysesResults.push(this) YJ.Analysis.AnalysesResults.push(this)
CutFillAnalysis.EditBox(this) // CutFillAnalysis.EditBox(this)
} }
create() { create() {
this.clean() this.clean()
this.Draw.start((a, positions) => { this.Draw.start((a, positions) => {
if(!positions || positions.length<3) { if (!positions || positions.length < 3) {
let _error = '最少需要三个坐标!' let _error = '最少需要三个坐标!'
console.warn(_error) this.tools.message({
window.ELEMENT && window.ELEMENT.Message({ text: _error,
message: _error,
type: 'warning', type: 'warning',
duration: 1500
}); });
return return
} }
@ -52,6 +52,7 @@ class CutFillAnalysis {
this.createPolygonGeo(this.positions); this.createPolygonGeo(this.positions);
this.result = this.VolumeAnalysis(); this.result = this.VolumeAnalysis();
this.viewer.scene.screenSpaceCameraController.enableCollisionDetection = false; //允许相机进入地下 this.viewer.scene.screenSpaceCameraController.enableCollisionDetection = false; //允许相机进入地下
this.clickCallBack()
}) })
// const $this = this; // const $this = this;
// if (!this.cp) { // if (!this.cp) {
@ -336,6 +337,65 @@ class CutFillAnalysis {
}); });
} }
get heights() {
return this.height
}
set heights(val) {
this.height = val
}
get precisions() {
return this.precision
}
set precisions(val) {
this.precision = val
}
get allArea() {
return Number(this.result.allArea.toFixed(4))
}
set allArea(val) {
this.result.allArea = val
}
get fillArea() {
return Number(this.result.fillArea.toFixed(4))
}
set fillArea(val) {
this.result.fillArea = val
}
get fillVolume() {
return Number(this.result.fillVolume.toFixed(4))
}
set fillVolume(val) {
this.result.fillVolume = val
}
get cutArea() {
return Number(this.result.cutArea.toFixed(4))
}
set cutArea(val) {
this.result.cutArea = val
}
get cutVolume() {
return Number(this.result.cutVolume.toFixed(4))
}
set cutVolume(val) {
this.result.cutVolume = val
}
get noArea() {
return Number(this.result.noArea.toFixed(4))
}
set noArea(val) {
this.result.noArea = val
}
get onEnd() {
return this.clickCallBack
}
set onEnd(val) {
if (val && typeof val !== 'function') {
console.error('val:', val, '不是一个function')
} else {
this.clickCallBack = val
}
}
clean() { clean() {
this.Draw && this.Draw.end() this.Draw && this.Draw.end()
for (let i = 0; i < this.entities.length; i++) { for (let i = 0; i < this.entities.length; i++) {
@ -351,4 +411,4 @@ class CutFillAnalysis {
} }
} }
} }
export default CutFillAnalysis; export default CutFillAnalysis;

View File

@ -172,26 +172,29 @@ class Profile extends Draw {
return positions_Inter return positions_Inter
} }
formatter(xy, tipData) { formatter(xy, tipData) {
const pointOption = { if (this.polyline) {
show: true, const pointOption = {
pixelSize: 10, show: true,
color: Cesium.Color.GREEN, pixelSize: 10,
outlineColor: Cesium.Color.SKYBLUE, color: Cesium.Color.GREEN,
outlineWidth: 3, outlineColor: Cesium.Color.SKYBLUE,
disableDepthTestDistance: Number.POSITIVE_INFINITY outlineWidth: 3,
} disableDepthTestDistance: Number.POSITIVE_INFINITY
if (!this.tipEntity) { }
this.tipEntity = this.sdk.viewer.entities.add({ if (!this.tipEntity) {
position: Cesium.Cartesian3.fromDegrees(xy[0], xy[1], Number(tipData[1])), this.tipEntity = this.sdk.viewer.entities.add({
point: pointOption position: Cesium.Cartesian3.fromDegrees(xy[0], xy[1], Number(tipData[1])),
}) point: pointOption
} else { })
this.tipEntity.position = Cesium.Cartesian3.fromDegrees( } else {
xy[0], this.tipEntity.position = Cesium.Cartesian3.fromDegrees(
xy[1], xy[0],
Number(tipData[1]) xy[1],
) Number(tipData[1])
)
}
} }
} }
static async edit(that, points) { static async edit(that, points) {

View File

@ -5,25 +5,23 @@ import MouseEvent from '../../../Event/index'
class SlopeAspect extends Tools { class SlopeAspect extends Tools {
/** /**
* @constructor 坡度坡向分析 * @constructor 坡度坡向分析
* @param sdk * @param sdk
* **/ * **/
constructor(sdk) { constructor(sdk) {
super(sdk) super(sdk)
this.viewer = sdk.viewer; this.viewer = sdk.viewer;
let terrainAvailability = this.viewer.terrainProvider.availability;
if (!terrainAvailability) {
this.error = '未加载地形数据!'
window.ELEMENT && window.ELEMENT.Message({
message: '未加载地形数据!',
type: 'warning',
duration: 1500
});
return
}
this.event this.event
this.result = []; //存储创建的坡度分析结果primitive集合 this.result = []; //存储创建的坡度分析结果primitive集合
this.handler = undefined; this.handler = undefined;
this.toolTip = ""; this.toolTip = "";
this.tools = new Tools(sdk)
let terrainAvailability = this.viewer.terrainProvider.availability;
if (!terrainAvailability) {
this.error = '未加载地形数据!'
this.tools.message({ type: 'warning', text: this.error })
return
}
YJ.Analysis.AnalysesResults.push(this) YJ.Analysis.AnalysesResults.push(this)
this.Draw = new DrawPolygon(this.sdk) this.Draw = new DrawPolygon(this.sdk)
// this.createNew4Distance() // this.createNew4Distance()
@ -39,11 +37,7 @@ class SlopeAspect extends Tools {
const viewer = this.viewer; const viewer = this.viewer;
this.Draw.start((e, positions) => { this.Draw.start((e, positions) => {
if (!positions || positions.length <= 2) { if (!positions || positions.length <= 2) {
window.ELEMENT && window.ELEMENT.Message({ this.tools.message({ type: 'warning', text: '至少拥有三个坐标位置!' })
message: '至少拥有三个坐标位置!',
type: 'warning',
duration: 1500
});
return return
} }
let boundary = []; let boundary = [];
@ -73,7 +67,7 @@ class SlopeAspect extends Tools {
let num = n let num = n
this.Draw.start((e, positions) => { this.Draw.start((e, positions) => {
if (!positions || positions.length <= 2) { if (!positions || positions.length <= 2) {
console.warn('至少拥有三个坐标位置!') this.tools.message({ type: 'warning', text: '至少拥有三个坐标位置!' })
return return
} }
let boundary = []; let boundary = [];
@ -204,8 +198,8 @@ class SlopeAspect extends Tools {
let _this = this let _this = this
// 点位过多,分为三份计算 // 点位过多,分为三份计算
let num = (Math.floor(boxResults.length / 3) + '') let num = (Math.floor(boxResults.length / 3) + '')
num = Number(num.substring(0, num.length - 1))*10 num = Number(num.substring(0, num.length - 1)) * 10
let i=0 let i = 0
let points = boxResults.slice(i * num, (i + 1) * num) let points = boxResults.slice(i * num, (i + 1) * num)
if (points.length > 0) { if (points.length > 0) {
sampleTerrainMostDetailed(points) sampleTerrainMostDetailed(points)
@ -239,7 +233,7 @@ class SlopeAspect extends Tools {
_this.calculateSlope(ellipseResults); _this.calculateSlope(ellipseResults);
}); });
} }
} }
createPolygonInsrance(points, color, curSlope) { createPolygonInsrance(points, color, curSlope) {
@ -514,4 +508,4 @@ class SlopeAspect extends Tools {
this.sdk.viewer.scene.preRender.removeEventListener(this._watchEvent, this) this.sdk.viewer.scene.preRender.removeEventListener(this._watchEvent, this)
} }
} }
export default SlopeAspect; export default SlopeAspect;

View File

@ -36,13 +36,13 @@ class Submerge extends Tools {
that.Draw.start((a, positions) => { that.Draw.start((a, positions) => {
if (!positions || positions.length < 3) { if (!positions || positions.length < 3) {
let _error = '至少需要三个坐标!' let _error = '至少需要三个坐标!'
this.tools.message({ that.tools.message({
message: _error, text: _error,
type: 'warning', type: 'warning',
}); });
return return
} }
Submerge.destroy() that.destroy()
if (!positions || positions.length == 0) { if (!positions || positions.length == 0) {
that.positions = [] that.positions = []
that._positions = [] that._positions = []
@ -62,6 +62,18 @@ class Submerge extends Tools {
} }
fromDegreesArray.push(positions[i].lng, positions[i].lat) fromDegreesArray.push(positions[i].lng, positions[i].lat)
} }
that.options.maxWaterLevel = positions[0].alt
for (let i = 0; i < positions.length; i++) {
if (that.options.minWaterLevel < positions[i].alt) {
that.options.maxWaterLevel = positions[i].alt
}
}
// for (let i = 0; i < positions.length; i++) { // for (let i = 0; i < positions.length; i++) {
// fromDegreesArray.push(positions[i].lng, positions[i].lat, that.options.minWaterLevel) // fromDegreesArray.push(positions[i].lng, positions[i].lat, that.options.minWaterLevel)
// } // }
@ -84,11 +96,16 @@ class Submerge extends Tools {
TWEEN.remove(that.TweenAnimate) TWEEN.remove(that.TweenAnimate)
that.TweenAnimate = null that.TweenAnimate = null
} }
let contentElm = that._DialogObject._element.body
let pauseBtn = contentElm.getElementsByClassName('pause')[0]; that.waterLevel = that.options.maxWaterLevel - that.options.minWaterLevel
let startBtn = contentElm.getElementsByClassName('start')[0]; that.options.waterVolume = Number((that.waterLevel * that.area).toFixed(4))
startBtn.style.display = 'flex'
pauseBtn.style.display = 'none' that.clickCallBack(that.area, that._positions)
// let contentElm = that._DialogObject._element.body
// let pauseBtn = contentElm.getElementsByClassName('pause')[0];
// let startBtn = contentElm.getElementsByClassName('start')[0];
// startBtn.style.display = 'flex'
// pauseBtn.style.display = 'none'
// that.move() // that.move()
// Submerge.EditBox(that) // Submerge.EditBox(that)
}) })
@ -105,7 +122,7 @@ class Submerge extends Tools {
that._DialogObject = await new Dialog(that.sdk.viewer._container, { that._DialogObject = await new Dialog(that.sdk.viewer._container, {
title: '淹没分析', left: '180px', top: '100px', title: '淹没分析', left: '180px', top: '100px',
closeCallBack: () => { closeCallBack: () => {
Submerge.destroy() that.destroy()
that.Dialog.closeCallBack && that.Dialog.closeCallBack() that.Dialog.closeCallBack && that.Dialog.closeCallBack()
}, },
}) })
@ -316,6 +333,22 @@ class Submerge extends Tools {
}) })
} }
get onEnd() {
return this.clickCallBack
}
set onEnd(val) {
if (val && typeof val !== 'function') {
console.error('val:', val, '不是一个function')
} else {
this.clickCallBack = val
}
}
get waterLevels() {
return this.waterLevel
}
set waterLevels(val) {
this.waterLevel = val
}
get waterVolume() { get waterVolume() {
return this.options.waterVolume return this.options.waterVolume
} }
@ -327,6 +360,7 @@ class Submerge extends Tools {
} }
set minWaterLevel(val) { set minWaterLevel(val) {
this.options.minWaterLevel = val this.options.minWaterLevel = val
this.currentWaterLaver = this.options.minWaterLevel
} }
get maxWaterLevel() { get maxWaterLevel() {
return this.options.maxWaterLevel return this.options.maxWaterLevel
@ -340,10 +374,10 @@ class Submerge extends Tools {
set risingSpeed(val) { set risingSpeed(val) {
this.options.risingSpeed = val this.options.risingSpeed = val
} }
get area() { get areas() {
return this.area return this.area
} }
set area(val) { set areas(val) {
this.area = val this.area = val
} }
@ -357,11 +391,11 @@ class Submerge extends Tools {
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
}).start() }).start()
let contentElm = this._DialogObject._element.body // let contentElm = this._DialogObject._element.body
let pauseBtn = contentElm.getElementsByClassName('pause')[0]; // let pauseBtn = contentElm.getElementsByClassName('pause')[0];
let startBtn = contentElm.getElementsByClassName('start')[0]; // let startBtn = contentElm.getElementsByClassName('start')[0];
startBtn.style.display = 'none' // startBtn.style.display = 'none'
pauseBtn.style.display = 'flex' // pauseBtn.style.display = 'flex'
} }
restart() { restart() {
@ -420,11 +454,11 @@ class Submerge extends Tools {
}) })
} }
static destroy() { destroy() {
if (this.TweenAnimate) { if (this.TweenAnimate) {
TWEEN.remove(this.TweenAnimate) TWEEN.remove(this.TweenAnimate)
} }
this.Draw.end() this.Draw && this.Draw.end()
this.sdk.viewer.entities.remove(this.entity) this.sdk.viewer.entities.remove(this.entity)
this.entity = null this.entity = null
} }

View File

@ -26,6 +26,7 @@ class TerrainExcavation extends Tools {
this.wallMaterial = Cesium.Material.fromType('Color', { this.wallMaterial = Cesium.Material.fromType('Color', {
color: Cesium.Color.fromAlpha(Cesium.Color.fromCssColorString('#976b4e')) color: Cesium.Color.fromAlpha(Cesium.Color.fromCssColorString('#976b4e'))
}) })
this.tools = new Tools(this.sdk)
let imageBottom = new Image(); let imageBottom = new Image();
let wallBottom = new Image(); let wallBottom = new Image();
imageBottom.src = this.bottomImg; imageBottom.src = this.bottomImg;
@ -71,7 +72,7 @@ class TerrainExcavation extends Tools {
} }
} }
this.init(); // this.init();
} }
get show() { get show() {
return this.options.show return this.options.show
@ -153,19 +154,11 @@ class TerrainExcavation extends Tools {
startCreate() { startCreate() {
this.Draw.start((e, positions) => { this.Draw.start((e, positions) => {
if (!positions || positions.length <= 2) { if (!positions || positions.length <= 2) {
window.ELEMENT && window.ELEMENT.Message({ this.tools.message({ type: 'warning', text: '至少拥有三个坐标位置!' })
message: '至少拥有三个坐标位置!',
type: 'warning',
duration: 1500
});
return return
} }
if(!this.isConvex(positions)) { if (!this.isConvex(positions)) {
window.ELEMENT && window.ELEMENT.Message({ this.tools.message({ type: 'warning', text: '至少拥有三个坐标位置!' })
message: '不支持凹多边形',
type: 'warning',
duration: 1500
});
console.log('不支持凹多边形') console.log('不支持凹多边形')
return return
} }

File diff suppressed because it is too large Load Diff

View File

@ -27,9 +27,11 @@ class VisibilityAnalysis extends Tools {
this.viewPointHeight = options.viewPointHeight this.viewPointHeight = options.viewPointHeight
this.Dialog = _Dialog this.Dialog = _Dialog
this._EventBinding = new EventBinding() this._EventBinding = new EventBinding()
this.tools = new Tools(this.sdk)
YJ.Analysis.AnalysesResults.push(this) YJ.Analysis.AnalysesResults.push(this)
// VisibilityAnalysis.edit(this) // VisibilityAnalysis.edit(this)
VisibilityAnalysis.create(this) VisibilityAnalysis.create(this)
} }
get viewPointHeight() { get viewPointHeight() {
@ -182,29 +184,33 @@ class VisibilityAnalysis extends Tools {
that.tip.setPosition(cartesian, movement.endPosition.x, movement.endPosition.y) that.tip.setPosition(cartesian, movement.endPosition.x, movement.endPosition.y)
}) })
that.event.mouse_right((movement, cartesian) => { that.event.mouse_right((movement, cartesian) => {
end() that.end()
}) })
that.event.gesture_pinck_start((movement, cartesian) => { that.event.gesture_pinck_start((movement, cartesian) => {
let startTime = new Date() let startTime = new Date()
that.event.gesture_pinck_end(() => { that.event.gesture_pinck_end(() => {
let endTime = new Date() let endTime = new Date()
if (endTime - startTime >= 500) { if (endTime - startTime >= 500) {
end() that.end()
} }
}) })
}) })
} }
else { else {
console.log('上一次测量未结束') that.tools.message({
text: '上一次测量未结束',
type: 'warning',
});
} }
function end() {
YJ.Measure.SetMeasureStatus(false) }
that.tip.destroy() end() {
that.event.destroy() YJ.Measure.SetMeasureStatus(false)
that.tip = null this.tip && this.tip.destroy()
that.event = null this.event && this.event.destroy()
} this.tip = null
this.event = null
} }
// static update(that) { // static update(that) {

View File

@ -5,6 +5,7 @@ import Draw from '../../../Draw/draw'
import MouseTip from '../../../MouseTip' import MouseTip from '../../../MouseTip'
import MouseEvent from '../../../Event' import MouseEvent from '../../../Event'
import Dialog from '../../../BaseDialog'; import Dialog from '../../../BaseDialog';
import Tools from "../../../Tools";
import EventBinding from '../../Element/Dialog/eventBinding'; import EventBinding from '../../Element/Dialog/eventBinding';
import { html } from "./_element"; import { html } from "./_element";
import { CameraController } from '../../../Global/global' import { CameraController } from '../../../Global/global'
@ -12,7 +13,7 @@ import { CameraController } from '../../../Global/global'
class Graffiti extends Draw { class Graffiti extends Draw {
/** /**
* @constructor * @constructor
* @param sdk * @param sdk
* @description 涂鸦 * @description 涂鸦
* @param options {object} 线属性 * @param options {object} 线属性
* @param options.width=10{number} 宽度 * @param options.width=10{number} 宽度
@ -23,6 +24,7 @@ class Graffiti extends Draw {
this.options.width = options.width || 1 this.options.width = options.width || 1
this.options.color = options.color || '#ff0000' this.options.color = options.color || '#ff0000'
this._elms = {}; this._elms = {};
this.tools = new Tools(sdk)
this._EventBinding = new EventBinding() this._EventBinding = new EventBinding()
Graffiti.edit(this, true) Graffiti.edit(this, true)
} }
@ -31,7 +33,7 @@ class Graffiti extends Draw {
return this.options.color return this.options.color
} }
set color(v) { set color(v) {
if(!this.options.color) { if (!this.options.color) {
return return
} }
this.options.color = v this.options.color = v
@ -69,14 +71,15 @@ class Graffiti extends Draw {
// 编辑框 // 编辑框
static async edit(that, state) { static async edit(that, state) {
if (state) { if (state) {
that._DialogObject = await new Dialog(that.sdk.viewer._container, { // that._DialogObject = await new Dialog(that.sdk.viewer._container, {
title: '涂鸦参数', // title: '涂鸦参数',
}) // })
await that._DialogObject.init() // await that._DialogObject.init()
let contentElm = document.createElement('div'); // let contentElm = document.createElement('div');
contentElm.innerHTML = html() // contentElm.innerHTML = html()
that._DialogObject.contentAppChild(contentElm) // that._DialogObject.contentAppChild(contentElm)
// 颜色组件 // 颜色组件
let contentElm = document.getElementsByClassName('graffiti')[0]
let colorPicker = new YJColorPicker({ let colorPicker = new YJColorPicker({
el: contentElm.getElementsByClassName("color")[0], el: contentElm.getElementsByClassName("color")[0],
size: 'mini',//颜色box类型 size: 'mini',//颜色box类型
@ -91,20 +94,20 @@ class Graffiti extends Draw {
that.color = 'rgba(255,255,255,1)' that.color = 'rgba(255,255,255,1)'
},//点击清空按钮事件回调 },//点击清空按钮事件回调
}) })
that._DialogObject._element.body.className = that._DialogObject._element.body.className + ' graffiti' // that._DialogObject._element.body.className = that._DialogObject._element.body.className + ' graffiti'
let all_elm = contentElm.getElementsByTagName("*") let all_elm = contentElm.getElementsByTagName("*")
that._EventBinding.on(that, all_elm) that._EventBinding.on(that, all_elm)
that._elms = that._EventBinding.element that._elms = that._EventBinding.element
that._elms.color = [colorPicker] that._elms.color = [colorPicker]
let confirmBtn = document.createElement('button'); // let confirmBtn = document.createElement('button');
confirmBtn.className = 'confirm'; // confirmBtn.className = 'confirm';
confirmBtn.innerHTML = '确认' // confirmBtn.innerHTML = '确认'
that._DialogObject.footAppChild(confirmBtn) // that._DialogObject.footAppChild(confirmBtn)
confirmBtn.addEventListener('click', () => { // confirmBtn.addEventListener('click', () => {
that.start() // that.start()
Graffiti.edit(that, false) // Graffiti.edit(that, false)
}); // });
} }
else { else {
if (that._DialogObject && that._DialogObject.close) { if (that._DialogObject && that._DialogObject.close) {
@ -122,7 +125,7 @@ class Graffiti extends Draw {
start() { start() {
let _this = this let _this = this
if (YJ.Measure.GetMeasureStatus()) { if (YJ.Measure.GetMeasureStatus()) {
console.log('上一次测量未结束') this.tools.message({ type: 'warning', text: '上一次测量未结束' })
} else { } else {
let viewer = this.sdk.viewer let viewer = this.sdk.viewer
CameraController(this.sdk, false) CameraController(this.sdk, false)
@ -160,7 +163,7 @@ class Graffiti extends Draw {
}) })
}) })
this.event.mouse_left_up((movement, cartesian) => { this.event.mouse_left_up((movement, cartesian) => {
polylineArray[polylineArray.length-1].polyline.positions = positions polylineArray[polylineArray.length - 1].polyline.positions = positions
this.event.mouse_move((movement, cartesian) => { this.event.mouse_move((movement, cartesian) => {
this.tip.setPosition( this.tip.setPosition(
cartesian, cartesian,
@ -221,7 +224,7 @@ class Graffiti extends Draw {
} }
} }
flicker() {} flicker() { }
} }
export default Graffiti export default Graffiti

View File

@ -4,6 +4,7 @@ import Dialog from '../../../BaseDialog'
import MouseEvent from '../../../Event/index' import MouseEvent from '../../../Event/index'
import MouseTip from '../../../MouseTip' import MouseTip from '../../../MouseTip'
import { html, css } from './_element' import { html, css } from './_element'
import Tools from "../../../Tools";
class RoutePlanning extends Base { class RoutePlanning extends Base {
/** /**
@ -27,6 +28,7 @@ class RoutePlanning extends Base {
lng: null, lng: null,
lat: null lat: null
} }
this.tools = new Tools(sdk)
this.init() this.init()
} }
@ -43,11 +45,12 @@ class RoutePlanning extends Base {
} else { } else {
this.startEntity.show = false this.startEntity.show = false
} }
this.startEntity.position = new Cesium.CallbackProperty(() => { this.startEntity.position = new Cesium.CallbackProperty(() => {
let pos = this.sdk.viewer.scene.clampToHeight( let pos = this.sdk.viewer.scene.clampToHeight(
new Cesium.Cartesian3.fromDegrees(this.startLng, this.startLat) new Cesium.Cartesian3.fromDegrees(this.startLng, this.startLat)
) )
this.clickCallBack({ start: pos, end: this.endEntity.position })
return pos return pos
}, false) }, false)
this.startEntity.billboard = { this.startEntity.billboard = {
@ -73,6 +76,7 @@ class RoutePlanning extends Base {
let pos = this.sdk.viewer.scene.clampToHeight( let pos = this.sdk.viewer.scene.clampToHeight(
new Cesium.Cartesian3.fromDegrees(this.endLng, this.endLat) new Cesium.Cartesian3.fromDegrees(this.endLng, this.endLat)
) )
this.clickCallBack({ start: this.startEntity.position, end: pos })
return pos return pos
}, false) }, false)
this.endEntity.billboard = { this.endEntity.billboard = {
@ -82,10 +86,21 @@ class RoutePlanning extends Base {
width: 32, width: 32,
height: 32 height: 32
} }
this.edit(true) // this.edit(true)
this.clear() this.clear()
} }
get onEnd() {
return this.clickCallBack
}
set onEnd(val) {
if (val && typeof val !== 'function') {
console.error('val:', val, '不是一个function')
} else {
this.clickCallBack = val
}
}
get startLng() { get startLng() {
return this.start.lng return this.start.lng
} }
@ -253,7 +268,7 @@ class RoutePlanning extends Base {
end: [this.endLng, this.endLat] end: [this.endLng, this.endLat]
}) })
} else { } else {
console.error('请先设置起点和终点坐标!') this.tools.message({ type: 'warning', text: '请先设置起点和终点坐标!' })
} }
}) })
div.appendChild(queryBtn) div.appendChild(queryBtn)
@ -696,6 +711,6 @@ class RoutePlanning extends Base {
} }
} }
flicker() {} flicker() { }
} }
export default RoutePlanning export default RoutePlanning

View File

@ -881,51 +881,51 @@
} }
/* 飞行漫游 */ /* 飞行漫游 */
.YJ-custom-base-dialog>.content .fly-roam { .fly-roam>.content .fly-roam {
width: 474px; width: 474px;
} }
.YJ-custom-base-dialog>.content .fly-roam .total-time { .fly-roam>.content .total-time {
margin-right: 5px; margin-right: 5px;
} }
.YJ-custom-base-dialog>.content .fly-roam .table { .fly-roam>.content .table {
font-size: 12px; font-size: 12px;
} }
.YJ-custom-base-dialog>.content .fly-roam .table .table-body { .fly-roam>.content .table .table-body {
height: 220px; height: 220px;
} }
.YJ-custom-base-dialog>.content .fly-roam .table .tr .th:first-child, .fly-roam>.content .table .tr .th:first-child,
.YJ-custom-base-dialog>.content .fly-roam .table .tr .td:first-child { .fly-roam>.content .table .tr .td:first-child {
flex: 0 0 95px; flex: 0 0 95px;
width: 95px; width: 95px;
} }
.YJ-custom-base-dialog>.content .fly-roam .table .tr .th:nth-child(2), .fly-roam>.content .table .tr .th:nth-child(2),
.YJ-custom-base-dialog>.content .fly-roam .table .tr .td:nth-child(2) { .fly-roam>.content .table .tr .td:nth-child(2) {
flex: 0 0 240px; flex: 0 0 240px;
width: 240px; width: 240px;
} }
.YJ-custom-base-dialog>.content .fly-roam .table .tr .th:last-child, .fly-roam>.content .table .tr .th:last-child,
.YJ-custom-base-dialog>.content .fly-roam .table .tr .td:last-child { .fly-roam>.content .table .tr .td:last-child {
flex: 0 0 140px; flex: 0 0 140px;
width: 140px; width: 140px;
} }
.YJ-custom-base-dialog>.content .fly-roam .table .table-body .tr.active { .fly-roam>.content .table .table-body .tr.active {
background: rgba(var(--color-sdk-base-rgb), 0.15); background: rgba(var(--color-sdk-base-rgb), 0.15);
} }
.YJ-custom-base-dialog>.content .fly-roam .table .table-body .tr:last-child { .fly-roam>.content .table .table-body .tr:last-child {
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5); border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-left: none; border-left: none;
border-right: none; border-right: none;
} }
.YJ-custom-base-dialog>.content .fly-roam .table .table-body .tr:last-child .input { .fly-roam>.content .table .table-body .tr:last-child .input {
color: #808080; color: #808080;
cursor: no-drop; cursor: no-drop;
} }
@ -938,26 +938,26 @@
border-color: rgba(var(--color-sdk-base-rgb), 0.5) !important; border-color: rgba(var(--color-sdk-base-rgb), 0.5) !important;
} */ } */
.YJ-custom-base-dialog>.content .fly-roam .table .action { .fly-roam>.content .table .action {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
} }
.YJ-custom-base-dialog>.content .fly-roam .table i { .fly-roam>.content .table i {
font-size: 18px; font-size: 18px;
color: #409eff; color: #409eff;
cursor: pointer; cursor: pointer;
} }
.YJ-custom-base-dialog>.content .fly-roam .table i:hover { .fly-roam>.content .table i:hover {
color: #6bb4ff; color: #6bb4ff;
} }
.YJ-custom-base-dialog>.content .fly-roam .table i:active { .fly-roam>.content .table i:active {
color: #409eff; color: #409eff;
} }
.YJ-custom-base-dialog>.content .fly-roam button { .fly-roam>.content button {
padding: 6px 14px; padding: 6px 14px;
} }
@ -2212,33 +2212,16 @@
.YJ-custom-base-dialog.cut-fill>.content>div .div-item:last-child .row .unit { .YJ-custom-base-dialog.cut-fill>.content>div .div-item:last-child .row .unit {
margin-left: 5px; margin-left: 5px;
} }
.YJ-custom-base-dialog.cut-fill>.content>div .el-slider__button { .YJ-custom-base-dialog.cut-fill>.content .firstTip {
width: 16px;
height: 16px;
border: 2px solid rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.cut-fill>.content>div .el-slider__bar {
background-color: rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.cut-fill>.content>div .firstTip {
font-size: 14px;
font-weight: 700;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
position: absolute; position: absolute;
top: 157px;
left: 340px; left: 340px;
top: 145px
} }
.YJ-custom-base-dialog.cut-fill>.content>div .endTip {
font-size: 14px; .YJ-custom-base-dialog.cut-fill>.content .endTip {
font-weight: 700;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
position: absolute; position: absolute;
top: 157px; top: 145px;
left: 515px; left: 515px
} }
/* 淹没分析 */ /* 淹没分析 */
@ -2293,6 +2276,17 @@
flex: 0 0 60px; flex: 0 0 60px;
justify-content: center; justify-content: center;
} }
.YJ-custom-base-dialog.submerge>.content .rangeWords {
font-size: 14px;
font-weight: 500;
letter-spacing: 0px;
line-height: 24px;
color: rgba(230, 247, 255, 1);
text-align: right;
vertical-align: top;
width: 42px;
margin-left: 10px
}
/* 地形分析 */ /* 地形分析 */
.YJ-custom-base-dialog.terrain-excavation>.content { .YJ-custom-base-dialog.terrain-excavation>.content {
@ -2443,40 +2437,43 @@
.YJ-custom-base-dialog.circle-view-shed>.content { .YJ-custom-base-dialog.circle-view-shed>.content {
width: 290px; width: 290px;
} }
.YJ-custom-base-dialog.circle-view-shed>.content>div .el-slider__button { .YJ-custom-base-dialog.circle-view-shed>.content .firstTip {
font-size: 14px;
font-weight: 700;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
text-align: left;
vertical-align: top;
position: absolute;
left: 88px;
top: 145px
}
.YJ-custom-base-dialog.circle-view-shed>.content .endTip {
font-size: 14px;
font-weight: 700;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
text-align: left;
vertical-align: top;
position: absolute;
left: 240px;
top: 145px;
}
.el-popper.is-dark {
z-index: 1000000 !important
}
.el-slider__button {
width: 16px; width: 16px;
height: 16px; height: 16px;
border: 2px solid rgba(var(--color-sdk-base-rgb), 1);
} }
.YJ-custom-base-dialog.circle-view-shed>.content>div .el-slider__bar { .el-slider {
background-color: rgba(var(--color-sdk-base-rgb), 1); --el-slider-main-bg-color: rgba(var(--color-sdk-base-rgb), 1)
}
.YJ-custom-base-dialog.circle-view-shed>.content>div .firstTip {
font-size: 14px;
font-weight: 700;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
position: absolute;
top: 150px;
left: 88px;
}
.YJ-custom-base-dialog.circle-view-shed>.content>div .endTip {
font-size: 14px;
font-weight: 700;
letter-spacing: 0px;
line-height: 0px;
color: rgba(255, 255, 255, 1);
position: absolute;
top: 150px;
left: 240px;
}
.el-popper.is-dark {
z-index: 100000000 !important;
/* 确保这个值足够高 */
} }
/* 地形可视域分析 */ /* 地形可视域分析 */