Files
sdk4_demo/example/分析-可视域.html
2025-07-03 15:12:58 +08:00

81 lines
2.5 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- <script src="../sdk/Cesium/Cesium.js"></script> -->
<!-- <script src="https://cesium.com/downloads/cesiumjs/releases/1.124/Build/Cesium/Cesium.js"></script> -->
<script src="../sdk/YJEarth.min.js"></script>
<script src="vue.js"></script>
<style>
body {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div id="app" class="fullSize">
<canvas id="canvasMap" style="display:none"></canvas>
<button class="button" @Click="analysis">分析</button>
<button class="button" @Click="nodeEdit">编辑</button>
<button class="button" @Click="clear">清除</button>
</div>
</body>
</html>
<script>
new Vue({
el: "#app",
data: {
},
async mounted() {
await YJ.on()
await this.createEarth()
},
methods: {
async createEarth() {
window.sdk = new YJ.YJEarth("app")
let tileset = new YJ.Obj.Tileset(sdk, {
show: true,
url: "http://127.0.0.1:8891/yjearth4.0/data/bim/11e6ea0fe308d89620c095d0957339e8/tileset.json",
id: "123456",
position: { lng: 100, lat: 40, alt: 100 },
})
await tileset.on()
tileset.flyTo()
window.tileset = tileset
// let terrain = await new YJ.Obj.Terrain(sdk, {
// url: "http://127.0.0.1:8890/yjearth4.0/data/pak/1aa55c41643a44e079c4a6af03fd301c"
// })
// this.ViewShed = new YJ.Analysis.ViewShed(this.sdk, {
// horizontalViewAngle: 30
// })
},
analysis() {
this.ViewShed = new YJ.Analysis.ViewShed(sdk, {verticalViewAngle: 60})
// setTimeout(() => {
// this.ViewShed.horizontalViewAngle = 150
// }, 3000);
console.log(this.ViewShed)
},
nodeEdit() {
this.ViewShed.nodeEdit()
// setTimeout(() => {
// this.ViewShed.viewPosition = { lng: 100, lat: 40, alt: 10 }
// }, 10000);
},
clear() {
console.log(YJ.Analysis)
YJ.Analysis.Clear();
this.ViewShed = null
}
}
})
</script>