Commit 1daa8887 by jlc

update:视角飞行案例的添加

parent c02bce9d
......@@ -43,6 +43,7 @@ import vueCodeMapx from '@/examples/sceneSet/mapx/mapx.vue?raw'
// 相机
import vueCodeCameraZoom from '@/examples/camera/cameraZoom/cameraZoom.vue?raw'
import vueCodeViewTrack from '@/examples/camera/viewTrack/viewTrack.vue?raw'
import vueCodePerspectiveFly from '@/examples/camera/perspectiveFly/perspectiveFly.vue?raw'
// 天气
import vueCodeRain from '@/examples/weather/rain/rain.vue?raw'
......@@ -101,6 +102,7 @@ const vueCodeMap = {
// 相机
相机缩放: vueCodeCameraZoom,
跟踪视角: vueCodeViewTrack,
视角飞行: vueCodePerspectiveFly,
// 天气
: vueCodeRain,
......
......@@ -43,6 +43,7 @@ import functionCodeMapx from '@/examples/sceneSet/mapx/mapx-function.js?raw'
// 相机
import functionCodeCameraZoom from '@/examples/camera/cameraZoom/cameraZoom-function.js?raw'
import functionCodeViewTrack from '@/examples/camera/viewTrack/viewTrack-function.js?raw'
import functionCodePerspectiveFly from '@/examples/camera/perspectiveFly/perspectiveFly-function.js?raw'
// 天气
import functionCodeRain from '@/examples/weather/rain/rain-function.js?raw'
......@@ -101,6 +102,7 @@ const functionCodeMap = {
// 相机
相机缩放: functionCodeCameraZoom,
跟踪视角: functionCodeViewTrack,
视角飞行: functionCodePerspectiveFly,
// 天气
: functionCodeRain,
......
export function perspectiveFly(viewer, longitude, latitude, altitude) {
if (longitude && latitude && altitude) {
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(parseFloat(longitude), parseFloat(latitude), parseFloat(altitude)),
});
} else {
console.error('请输入有效的经度、纬度和高度');
}
}
\ No newline at end of file
<template>
<div id="cesiumContainer" class="cesium-container"></div>
<div class="item-class">
<span style="background-color: aliceblue; margin: 2px;">跳转到指定位置</span>
<div>
<input v-model="inputLongitude" style="width: 52px; margin-top: 5px; margin-left: 2px;" placeholder="经度:" />
<input v-model="inputLatitude" style="width: 52px; margin-top: 5px; margin-left: 2px;" placeholder="纬度:" />
<input v-model="inputAltitude" style="width: 52px; margin-top: 5px; margin-left: 2px;" placeholder="高度:" />
</div>
<div style="margin: 2px;">
<button type="primary" @click="perspectiveFly(viewer, inputLongitude, inputLatitude, inputAltitude)">跳转</button>
<button @click="reset()">重置</button>
</div>
</div>
</template>
<script setup>
import { onMounted, ref } from 'vue';
import { perspectiveFly } from './function';
let viewer;
const inputLongitude = ref('')
const inputLatitude = ref('')
const inputAltitude = ref('')
function reset() {
inputLongitude.value = '';
inputLatitude.value = '';
inputAltitude.value = '';
}
onMounted(() => {
const script = document.createElement('script');
script.src = 'https://cesium.com/downloads/cesiumjs/releases/1.99/Build/Cesium/Cesium.js';
script.onload = () => {
window.Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3Njg4ZWU5Yi1iZDhiLTRhYmUtOTRiYS04YjM5NmUwNjVmMDMiLCJpZCI6MjI3MzQ3LCJpYXQiOjE3MjA1MjA4Mjh9.E5XW4LnwgfVAaBC-znaYr61m4yK0-j2qEQhi9qwFFPE'
viewer = new window.Cesium.Viewer('cesiumContainer', {
infoBox: false,
});
};
document.head.appendChild(script);
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://cesium.com/downloads/cesiumjs/releases/1.119/Build/Cesium/Widgets/widgets.css';
document.head.appendChild(link);
});
</script>
<style>
.cesium-container {
width: 100%;
height: 100vh;
}
.item-class {
position: absolute;
top: 10px;
left: 10px;
}
</style>
\ No newline at end of file
......@@ -155,6 +155,10 @@ export const elementCameraMap = {
相机缩放: {
title: '相机缩放',
pngUrl: '/src/assets/CameraZoom.png'
},
视角飞行: {
title: '视角飞行',
pngUrl: '/src/assets/PerspectiveFly.png'
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment