Commit 89d85677 by jlc

update:地球坐标系和鹰眼图案例的添加

parent 2a6edd9c
...@@ -21,6 +21,8 @@ import vueCodeStraightArrow from '@/examples/graphicElement/straightArrow/straig ...@@ -21,6 +21,8 @@ import vueCodeStraightArrow from '@/examples/graphicElement/straightArrow/straig
import vueCodeTerminatorLine from '@/examples/sceneSet/terminatorLine/terminatorLine.vue?raw' import vueCodeTerminatorLine from '@/examples/sceneSet/terminatorLine/terminatorLine.vue?raw'
import vueCodeJingweiNetwork3D from '@/examples/sceneSet/jingweiNetwork3D/jingweiNetwork3D.vue?raw' import vueCodeJingweiNetwork3D from '@/examples/sceneSet/jingweiNetwork3D/jingweiNetwork3D.vue?raw'
import vueCodeJingweiNetwork2D from '@/examples/sceneSet/jingweiNetwork2D/jingweiNetwork2D.vue?raw' import vueCodeJingweiNetwork2D from '@/examples/sceneSet/jingweiNetwork2D/jingweiNetwork2D.vue?raw'
import vueCodeEarthCoordinate from '@/examples/sceneSet/earthCoordinate/earthCoordinate.vue?raw'
import vueCodeMapx from '@/examples/sceneSet/mapx/mapx.vue?raw'
// 天气 // 天气
import vueCodeRain from '@/examples/weather/rain/rain.vue?raw' import vueCodeRain from '@/examples/weather/rain/rain.vue?raw'
...@@ -53,6 +55,8 @@ const vueCodeMap = { ...@@ -53,6 +55,8 @@ const vueCodeMap = {
晨昏线: vueCodeTerminatorLine, 晨昏线: vueCodeTerminatorLine,
经纬网络3D: vueCodeJingweiNetwork3D, 经纬网络3D: vueCodeJingweiNetwork3D,
经纬网络2D: vueCodeJingweiNetwork2D, 经纬网络2D: vueCodeJingweiNetwork2D,
地球坐标系: vueCodeEarthCoordinate,
鹰眼图: vueCodeMapx,
// 天气 // 天气
: vueCodeRain, : vueCodeRain,
......
...@@ -21,6 +21,8 @@ import functionStraightArrow from '@/examples/graphicElement/straightArrow/strai ...@@ -21,6 +21,8 @@ import functionStraightArrow from '@/examples/graphicElement/straightArrow/strai
import functionCodeTerminatorLine from '@/examples/sceneSet/terminatorLine/terminatorLine-function.js?raw' import functionCodeTerminatorLine from '@/examples/sceneSet/terminatorLine/terminatorLine-function.js?raw'
import functionCodeJingweiNetwork3D from '@/examples/sceneSet/jingweiNetwork3D/jingweiNetwork3D-function.js?raw' import functionCodeJingweiNetwork3D from '@/examples/sceneSet/jingweiNetwork3D/jingweiNetwork3D-function.js?raw'
import functionCodeJingweiNetwork2D from '@/examples/sceneSet/jingweiNetwork2D/jingweiNetwork2D-function.js?raw' import functionCodeJingweiNetwork2D from '@/examples/sceneSet/jingweiNetwork2D/jingweiNetwork2D-function.js?raw'
import functionCodeEarthCoordinate from '@/examples/sceneSet/earthCoordinate/earthCoordinate-function.js?raw'
import functionCodeMapx from '@/examples/sceneSet/mapx/mapx-function.js?raw'
// 天气 // 天气
import functionCodeRain from '@/examples/weather/rain/rain-function.js?raw' import functionCodeRain from '@/examples/weather/rain/rain-function.js?raw'
...@@ -53,6 +55,8 @@ const functionCodeMap = { ...@@ -53,6 +55,8 @@ const functionCodeMap = {
晨昏线: functionCodeTerminatorLine, 晨昏线: functionCodeTerminatorLine,
经纬网络3D: functionCodeJingweiNetwork3D, 经纬网络3D: functionCodeJingweiNetwork3D,
经纬网络2D: functionCodeJingweiNetwork2D, 经纬网络2D: functionCodeJingweiNetwork2D,
地球坐标系: functionCodeEarthCoordinate,
鹰眼图: functionCodeMapx,
// 天气 // 天气
: functionCodeRain, : functionCodeRain,
......
export function addearthCoordinate() {
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'
const viewer = new window.Cesium.Viewer('cesiumContainer', {
infoBox: false,
});
// 获取地球的 globe 实例
const globe = viewer.scene.globe;
// 创建一个以地球球心为起点的坐标系
const center = new Cesium.Cartesian3(0, 0, 0); // 地球球心的坐标
const modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(center);
// 添加坐标轴图元
viewer.scene.primitives.add(new Cesium.DebugModelMatrixPrimitive({
modelMatrix: modelMatrix,
length: 10000000, // 坐标轴的长度
width: 2.0 // 坐标轴的宽度
}));
};
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);
}
<template>
<div id="cesiumContainer" class="cesium-container"></div>
</template>
<script setup>
import { onMounted } from 'vue';
import { addearthCoordinate } from './function';
onMounted(() => {
addearthCoordinate()
});
</script>
<style>
.cesium-container {
width: 100%;
height: 100vh;
}
</style>
\ No newline at end of file
export function addMapx() {
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'
const viewerMain = new window.Cesium.Viewer('cesiumContainer', {
infoBox: false,
});
const viewerEye = new window.Cesium.Viewer('eye', {
infoBox: false,
// 禁用所有小组件
baseLayerPicker: false, // 是否显示图层选择控件
animation: false, // 是否显示动画控件
timeline: false, // 是否显示时间轴控件,和cesuim中的click进行挂接的
fullscreenButton: false, // 是否显示全屏按钮
geocoder: false, // 是否显示搜索按钮
homeButton: false, // 是否显示主页按钮(回到地球初始化的状态)
navigationHelpButton: false, // 是否显示帮助提示按钮
sceneModePicker: false, // 是否显示投影方式按钮
infoBox: false, // 是否显示信息框,显示实体相关的属性信息
});
// 禁用鹰眼地图的操作
const setViewer = (viewer) => {
let control = viewer.scene.screenSpaceCameraController;
control.enableRotate = false;
control.enableTranslate = false;
control.enableZoom = false;
control.enableTilt = false;
control.enableLook = false;
}
setViewer(viewerEye)
//鹰眼地图与主地图同步
const syncViewer = () =>{
viewerEye.camera.flyTo({
destination: viewerMain.camera.position,
orientation: {
heading: viewerMain.camera.heading,
pitch: viewerMain.camera.pitch,
roll: viewerMain.camera.roll
},
duration: 0.0
});
};
//添加主界面Cesium 视图监听事件
viewerMain.scene.preRender.addEventListener(syncViewer);
};
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);
}
<template>
<div id="cesiumContainer" class="cesium-container"></div>
<div id="eye" class="eye-container"></div>
</template>
<script setup>
import { onMounted } from 'vue';
import { addMapx } from './function';
onMounted(() => {
addMapx()
});
</script>
<style>
.cesium-container {
width: 100%;
height: 100vh;
}
.eye-container {
position: absolute;
bottom: 10px;
right: 10px;
}
</style>
\ No newline at end of file
...@@ -83,6 +83,14 @@ export const elementSceneSetMap = { ...@@ -83,6 +83,14 @@ export const elementSceneSetMap = {
经纬网络2D: { 经纬网络2D: {
title: '经纬网络2D', title: '经纬网络2D',
pngUrl: '/src/assets/JingweiNetwork2D.png' pngUrl: '/src/assets/JingweiNetwork2D.png'
},
地球坐标系: {
title: '地球坐标系',
pngUrl: '/src/assets/EarthCoordinate.png'
},
鹰眼图: {
title: '鹰眼图',
pngUrl: '/src/assets/Mapx.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