Commit e754da82 by lyc

Merge branch 'develop' of ssh://47.96.160.63:10022/jlc/cesium-frame into develop

parents 53eba445 89d85677
...@@ -23,6 +23,9 @@ import vueCodeStraightArrow from '@/examples/graphicElement/straightArrow/straig ...@@ -23,6 +23,9 @@ 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 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'
...@@ -58,6 +61,9 @@ const vueCodeMap = { ...@@ -58,6 +61,9 @@ const vueCodeMap = {
// 场景设置 // 场景设置
晨昏线: vueCodeTerminatorLine, 晨昏线: vueCodeTerminatorLine,
经纬网络3D: vueCodeJingweiNetwork3D, 经纬网络3D: vueCodeJingweiNetwork3D,
经纬网络2D: vueCodeJingweiNetwork2D,
地球坐标系: vueCodeEarthCoordinate,
鹰眼图: vueCodeMapx,
// 天气 // 天气
: vueCodeRain, : vueCodeRain,
......
...@@ -23,6 +23,9 @@ import functionStraightArrow from '@/examples/graphicElement/straightArrow/strai ...@@ -23,6 +23,9 @@ 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 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'
...@@ -57,6 +60,9 @@ const functionCodeMap = { ...@@ -57,6 +60,9 @@ const functionCodeMap = {
// 场景设置 // 场景设置
晨昏线: functionCodeTerminatorLine, 晨昏线: functionCodeTerminatorLine,
经纬网络3D: functionCodeJingweiNetwork3D, 经纬网络3D: functionCodeJingweiNetwork3D,
经纬网络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 addJingweiNetwork2D() {
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,
sceneMode: window.Cesium.SceneMode.SCENE2D
});
if(Cesium.FeatureDetection.supportsImageRenderingPixelated()){ // 判断是否支持图像渲染像素化处理
viewer.resolutionScale = window.devicePixelRatio;
}
// 开启抗锯齿(在折线进行放大的时候会出现锯齿状的形态,开启抗锯齿可以避免这种情况)
viewer.scene.fxaa = true;
viewer.scene.postProcessStages.fxaa.enabled = true;
const entities = viewer.entities;
for (let lang = -180; lang <= 180; lang += 20) {
let text = "";
if (lang === 0) {
text = "0";
}
text += lang === 0 ? "" : "" + lang + "°";
if (lang === -180) {
text = "";
}
entities.add({
position: Cesium.Cartesian3.fromDegrees(lang, 0),
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray([
lang,
-90,
lang,
0,
lang,
90,
]),
width: 1.0,
material: Cesium.Color.WHITE,
},
label: {
text: text,
verticalOrigin: Cesium.VerticalOrigin.TOP,
font: "12px sans-serif",
fillColor: Cesium.Color.WHITE,
},
});
}
//纬度
let langS = [];
for (let lang = -180; lang <= 180; lang += 5) {
langS.push(lang);
}
// 每隔10读绘制一条纬度线和纬度标注
for (let lat = -80; lat <= 80; lat += 10) {
let text = "";
text += "" + lat + "°";
if (lat === 0) {
text = "";
}
entities.add({
position: Cesium.Cartesian3.fromDegrees(0, lat),
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray(
langS
.map((long) => {
return [long, lat].join(",");
})
.join(",")
.split(",")
.map((item) => Number(item))
),
width: 1.0,
material: Cesium.Color.WHITE,
},
label: {
text: text,
font: "12px sans-serif",
fillColor: Cesium.Color.WHITE,
},
});
}
};
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 { addJingweiNetwork2D } from './function';
onMounted(() => {
addJingweiNetwork2D()
});
</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
...@@ -79,6 +79,18 @@ export const elementSceneSetMap = { ...@@ -79,6 +79,18 @@ export const elementSceneSetMap = {
经纬网络3D: { 经纬网络3D: {
title: '经纬网络3D', title: '经纬网络3D',
pngUrl: '/src/assets/JingweiNetwork3D.png' pngUrl: '/src/assets/JingweiNetwork3D.png'
},
经纬网络2D: {
title: '经纬网络2D',
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