This commit is contained in:
2025-09-23 14:38:08 +08:00
parent 783de5cb7a
commit 16a04a9a90
8 changed files with 125 additions and 63 deletions

View File

@ -12,8 +12,8 @@ let repeat = 0
let currentRepeat = 0
const open = async (sdk, options = {}, _Dialog = {}) => {
let name = options.name || '飞线漫游'
const open = async (sdk, options = {}, _Dialog = {}, func) => {
let name = options.name || '漫游路径'
options.points || (options.points = [])
if (options.repeat) {
repeat = Number(options.repeat)
@ -74,8 +74,9 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
name = nameElm.value
})
let addListBtn = document.createElement('button');
addListBtn.innerHTML = '保存'
// let addListBtn = document.createElement('button');
let addListBtn = document.getElementsByClassName('saveRoam')[0];
// addListBtn.innerHTML = '保存'
addListBtn.addEventListener('click', () => {
if (!name) {
name = '漫游路径'
@ -85,6 +86,12 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
points.map((item) => {
newPoints.push(item)
})
func({
name: name,
points: newPoints,
repeat: repeat + ''
})
// _Dialog.clickSavePath && _Dialog.clickSavePath(
// {
// name: name,
@ -124,20 +131,20 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
addTrElm(data)
i++
})
let modifyBtn = contentElm.getElementsByClassName('modify-point')[0]
modifyBtn.addEventListener('click', () => {
if (!active) {
return
}
let position = tools.cartesian3Towgs84(viewer.camera.position, viewer)
points[active - 1].position = position
points[active - 1].orientation = {
heading: viewer.camera.heading,
pitch: viewer.camera.pitch,
roll: viewer.camera.roll
}
tools.message({ text: '操作成功' })
})
// let modifyBtn = contentElm.getElementsByClassName('modify-point')[0]
// modifyBtn.addEventListener('click', () => {
// if (!active) {
// return
// }
// let position = tools.cartesian3Towgs84(viewer.camera.position, viewer)
// points[active - 1].position = position
// points[active - 1].orientation = {
// heading: viewer.camera.heading,
// pitch: viewer.camera.pitch,
// roll: viewer.camera.roll
// }
// tools.message({ text: '操作成功' })
// })
let totalTimeElm = contentElm.querySelector("input[name='totalTime']")
let isTotalTimeElm = contentElm.querySelector("input[name='isTotalTime']")
@ -287,11 +294,13 @@ const open = async (sdk, options = {}, _Dialog = {}) => {
// }
})
e_time.addEventListener('input', (v) => {
console.log(isTotalTimeElm, 'isTotalTimeElm')
isTotalTimeElm.checked = false
data.duration = Number(e_time.value)
if (data.duration < 0) {
data.duration = 0
}
console.log(data.duration, 'duration')
})
e_time.addEventListener('blur', () => {
e_time.value = Number(Number(e_time.value).toFixed(2))
@ -325,6 +334,7 @@ const close = () => {
}
const executeFlyTo = (sdk, points = [], index = 0, noStart) => {
console.log(noStart, points, 'noStart')
if (clickHandler) {
clickHandler.destroy()
}

View File

@ -27,7 +27,7 @@ const convertToImage = (container, options = {}) => {
useCORS: true,//允许跨域
allowTaint: false, //允许跨域数据污染'被污染'的canvas
tainttest: true,
foreignObjectRendering: true, //在浏览器支持的情况下使用ForeignObject模式渲染图片
foreignObjectRendering: true, //在浏览器支持的情况下使用ForeignObject模式渲染图片
...options
};
@ -241,11 +241,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) {
start() {
if (sdk.viewer.scene.imageryLayers._layers.length <= 1) {
this.error = '未加载底图!'
window.ELEMENT && window.ELEMENT.Message({
message: this.error,
type: 'warning',
duration: 1500
});
// window.ELEMENT && window.ELEMENT.Message({
// message: this.error,
// type: 'warning',
// duration: 1500
// });
tools.message({ type: 'warning', text: this.error })
console.warn(this.error)
return
}
@ -258,11 +259,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) {
}
if (!haveBaseMap) {
this.error = '未加载底图!'
window.ELEMENT && window.ELEMENT.Message({
message: this.error,
type: 'warning',
duration: 1500
});
// window.ELEMENT && window.ELEMENT.Message({
// message: this.error,
// type: 'warning',
// duration: 1500
// });
tools.message({ type: 'warning', text: this.error })
console.warn(this.error)
return
}
@ -327,11 +329,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) {
if (!layer) {
if (!flag) {
_this.error = '当前范围内未找到底图数据!'
window.ELEMENT && window.ELEMENT.Message({
message: _this.error,
type: 'warning',
duration: 1500
});
// window.ELEMENT && window.ELEMENT.Message({
// message: _this.error,
// type: 'warning',
// duration: 1500
// });
tools.message({ type: 'warning', text: _this.error })
console.warn(_this.error)
}
return
@ -372,11 +375,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) {
);
if (!MinTile || !MaxTile) {
let error = '超出地球范围!'
window.ELEMENT && window.ELEMENT.Message({
message: error,
type: 'warning',
duration: 1500
});
// window.ELEMENT && window.ELEMENT.Message({
// message: error,
// type: 'warning',
// duration: 1500
// });
tools.message({ type: 'warning', text: error })
console.warn(error)
return
}
@ -704,4 +708,4 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) {
}
export { ScreenShot, ScreenShotHD }
export { ScreenShot, ScreenShotHD }

View File

@ -2,7 +2,7 @@ import Tools from "../../../Tools";
class Section extends Tools {
/**
* @constructor 剖切
* @param sdk
* @param sdk
* @param tiles3d {object} 3dtiles对象
* @param {Array.<object>} options.positions 经纬度[{lon,lat,alt},...]
* @param options.regionsType=false 裁剪类型 false:裁剪内部true:裁剪外部
@ -17,6 +17,7 @@ class Section extends Tools {
this.options.regionsType = this.options.regionsType || false
YJ.Analysis.SectionResults.push(this)
this.Planes = []
this.tools = new Tools();
Section.start(this)
}
@ -33,12 +34,13 @@ class Section extends Tools {
static start(that) {
let positions = that.options.positions || []
if(!that.isConvex(positions)) {
window.ELEMENT && window.ELEMENT.Message({
message: '不支持凹多边形',
type: 'warning',
duration: 1500
});
if (!that.isConvex(positions)) {
// window.ELEMENT && window.ELEMENT.Message({
// message: '不支持凹多边形',
// type: 'warning',
// duration: 1500
// });
that.tools.message({ type: 'warning', text: '不支持凹多边形' })
console.log('不支持凹多边形')
return
}
@ -87,13 +89,13 @@ class Section extends Tools {
}
}
if(that.tiles3d.clippingPlanes) {
if (that.tiles3d.clippingPlanes) {
that.tiles3d.clippingPlanes.removeAll()
for(let i=0;i<that.Planes.length;i++) {
for (let i = 0; i < that.Planes.length; i++) {
that.tiles3d.clippingPlanes.add(that.Planes[i])
}
that.tiles3d.clippingPlanes.enabled = true
}
else {
const PlaneCollection = new Cesium.ClippingPlaneCollection({
@ -135,11 +137,11 @@ class Section extends Tools {
destroy() {
this.Planes = []
// this.tiles3d.clippingPlanes = new Cesium.ClippingPlaneCollection()
if(this.tiles3d.clippingPlanes) {
if (this.tiles3d.clippingPlanes) {
this.tiles3d.clippingPlanes.enabled = false
this.tiles3d.clippingPlanes.removeAll()
}
}
}
export default Section;
export default Section;

View File

@ -158,7 +158,8 @@ class TerrainExcavation extends Tools {
return
}
if (!this.isConvex(positions)) {
this.tools.message({ type: 'warning', text: '至少拥有三个坐标位置!' })
// this.tools.message({ type: 'warning', text: '至少拥有三个坐标位置!' })
this.tools.message({ type: 'warning', text: '不支持凹多边形' })
console.log('不支持凹多边形')
return
}

View File

@ -105,7 +105,7 @@ function html(that) {
</div>
</div>
</div>
<div class="row">
<div class="lable-left-line">
<span>缩放</span>
@ -177,7 +177,7 @@ function html(that) {
</div>
</div>
</div>
</div>
</DIV-cy-tab-pane>
<DIV-cy-tab-pane label="标注风格">
@ -193,4 +193,4 @@ function html(that) {
`
}
export { html }
export { html }

View File

@ -970,12 +970,16 @@ class Tools {
return canvas.toDataURL()
}
sampleHeightMostDetailed(positions) {
sampleHeightMostDetailed(positions, sdk) {
let cartesians = []
positions.forEach((item) => {
cartesians.push(new Cesium.Cartographic.fromDegrees(item.lng, item.lat))
})
return this.sdk.viewer.scene.sampleHeightMostDetailed(cartesians)
if (sdk) {
return sdk.viewer.scene.sampleHeightMostDetailed(cartesians)
} else {
return this.sdk.viewer.scene.sampleHeightMostDetailed(cartesians)
}
}
flyHome(duration = 3) {

View File

@ -93,21 +93,62 @@ const open = async (sdk, closeCallBack) => {
legpObjectLeft.legp_search(tagData, true)
let legpObjectRight = legp(contentElm.getElementsByClassName('right')[0], ".datalist_right")
legpObjectRight.legp_search(tagData, true)
let pickElm = contentElm.getElementsByClassName('pick')[0]
let copyElm = contentElm.getElementsByClassName('copy')[0]
let sourceCopyElm = contentElm.getElementsByClassName('sourceCopy')[0]
let datalistLeftInput = contentElm.getElementsByClassName('datalist_left')[0].getElementsByTagName('input')[0]
datalistLeftInput.value = tagData[0].value
legpObjectLeft.legp_searchActive(tagData[0].value)
let datalistRightInput = contentElm.getElementsByClassName('datalist_right')[0].getElementsByTagName('input')[0]
datalistRightInput.value = tagData[0].value
legpObjectRight.legp_searchActive(tagData[0].value)
let convertElm = contentElm.getElementsByClassName('convert')[0]
let leftXElm = contentElm.getElementsByClassName('left-x')[0]
let leftYElm = contentElm.getElementsByClassName('left-y')[0]
let rightXElm = contentElm.getElementsByClassName('right-x')[0]
let rightYElm = contentElm.getElementsByClassName('right-y')[0]
let beforeleftVal = 'EPSG:4326'
let beforerightVal = 'EPSG:4326'
// 监听输入事件(实时触发)
datalistLeftInput.addEventListener('input', (e) => {
const newValue = e.target.value;
if (leftXElm.value && leftYElm.value) {
let result = proj.convert([{ x: Number(leftXElm.value), y: Number(leftYElm.value) }], beforeleftVal, newValue)
if (result.code === 0) {
leftXElm.value = result.points[0].x
leftYElm.value = result.points[0].y
}
}
beforeleftVal = newValue
// 可以在这里调用legp_searchActive方法
legpObjectLeft.legp_searchActive(newValue);
});
datalistRightInput.addEventListener('input', (e) => {
const newValue = e.target.value;
if (rightXElm.value && rightYElm.value) {
let result = proj.convert([{ x: Number(rightXElm.value), y: Number(rightYElm.value) }], beforerightVal, newValue)
if (result.code === 0) {
rightXElm.value = result.points[0].x
rightYElm.value = result.points[0].y
}
}
beforerightVal = datalistRightInput.value
// 可以在这里调用legp_searchActive方法
legpObjectRight.legp_searchActive(newValue);
});
pickElm.addEventListener('click', () => {
tip && tip.destroy()
event && event.destroy()

View File

@ -899,14 +899,14 @@
.fly-roam>.content .table .tr .th:first-child,
.fly-roam>.content .table .tr .td:first-child {
flex: 0 0 95px;
width: 95px;
flex: 0 0 70px;
width: 70px;
}
.fly-roam>.content .table .tr .th:nth-child(2),
.fly-roam>.content .table .tr .td:nth-child(2) {
flex: 0 0 240px;
width: 240px;
flex: 0 0 100px;
width: 100px;
}
.fly-roam>.content .table .tr .th:last-child,