【CesiumJS-1】引入三维地球并初始化

基于vue3+vite的CesiumJS学习与使用

安装Cesium

npm i cesium

前置工作

1. 申请CESIUM ion-token

申请地址

2. 复制cesium依赖包中的Cesium文件

3. 将文件放到根目录下

4. index.html文件引入cesiumJS相关文件

加载三维地球

1. 创建.vue组件并使用组件

2. 创建cesium容器盒子
<template>
  <div id="cesiumContainer"></div>
</template>
3. 使用cesium引入三维地球
<script setup>
import { onMounted, ref } from "vue";
const viewer = ref(null);

const initCesium = () => {
  // 1.引入token
  Cesium.Ion.defaultAccessToken = "xxxxxxxxxxxxxxx";
  // 2.三维地球初始化
  viewer.value = new Cesium.Viewer("cesiumContainer");
}

onMounted(() => {
  initCesium();
})
</script>
<style scoped>
#cesiumContainer {
  position: relative;
  width: 100vw;
  height: 100vh;
}
</style>
效果展示:

4. 初始化三维地球
  viewer.value = new Cesium.Viewer("cesiumContainer", {
    animation: false, //是否创建动画小器件,左下角仪表
    fullscreenButton: false, //是否显示全屏按钮
    geocoder: false, //是否显示geocoder小器件,右上角查询按钮
    homeButton: false, //是否显示Home按钮
    infoBox: false, //是否显示信息框
    sceneModePicker: false, //是否显示3D/2D选择器
    scene3DOnly: false, //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
    selectionIndicator: false, // 是否显示选取指示器组件
    timeline: false, // 是否显示时间轴
    navigationHelpButton: false,// 是否显示右上角的帮助按钮
    baselLayerPicker: false, // 将图层选择的控件关掉,才能添加其他影像数据
    shadows: false, // 是否显示背影
    baseLayerPicker: false, // 是否显示图层选择器
    orderIndependentTranslucency: false, //去掉大气层黑圈
  });
去除文字、图片的锯齿等
  viewer.value.scene.fxaa = false;//改善实体图片清晰度,去除图片锯齿
  viewer.value.scene.postProcessStages.fxaa.enabled = true; //去锯齿 使文字清晰
  if (Cesium.FeatureDetection.supportsImageRenderingPixelated()) {
    // 判断是否支持图像渲染像素化处理
    viewer.value.resolutionScale = window.devicePixelRatio;
  }
去除版权信息
  viewer.value._cesiumWidget._creditContainer.style.display = "none";
修改鼠标左键平移、滚轮缩放、右键旋转视角
  //缩放
  viewer.value.scene.screenSpaceCameraController.zoomEventTypes = [
    Cesium.CameraEventType.WHEEL,
    Cesium.CameraEventType.PINCH,
  ];
  //视图视角切换
  viewer.value.scene.screenSpaceCameraController.tiltEventTypes = [
    Cesium.CameraEventType.PINCH,
    Cesium.CameraEventType.RIGHT_DRAG,
  ];

效果展示

完整代码:

<template>
  <div id="cesiumContainer"></div>
</template>

<script setup>
import { onMounted, ref } from "vue";
const viewer = ref(null);

const initCesium = () => {
  // 1.引入token
  Cesium.Ion.defaultAccessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3MjIyNjg2OS01OWY1LTQ0OGQtYjg4Yy0xNmM1ZmFmMzVhYTgiLCJpZCI6MTU4NDUyLCJpYXQiOjE3MDgzMjY1NDB9.PYcGBAkBAwfE4rzabWzOnqmvOwThUHy0nnCzTT0sMGs";
  // 2.三维地球初始化
  viewer.value = new Cesium.Viewer("cesiumContainer", {
    animation: false, //是否创建动画小器件,左下角仪表
    fullscreenButton: false, //是否显示全屏按钮
    geocoder: false, //是否显示geocoder小器件,右上角查询按钮
    homeButton: false, //是否显示Home按钮
    infoBox: false, //是否显示信息框
    sceneModePicker: false, //是否显示3D/2D选择器
    scene3DOnly: false, //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
    selectionIndicator: false, // 是否显示选取指示器组件
    timeline: false, // 是否显示时间轴
    navigationHelpButton: false,// 是否显示右上角的帮助按钮
    baselLayerPicker: false, // 将图层选择的控件关掉,才能添加其他影像数据
    shadows: false, // 是否显示背影
    baseLayerPicker: false, // 是否显示图层选择器
    orderIndependentTranslucency: false, //去掉大气层黑圈
  });

  // 去除文字、图片的锯齿等
  viewer.value.scene.fxaa = false;//改善实体图片清晰度,去除图片锯齿
  viewer.value.scene.postProcessStages.fxaa.enabled = true; //去锯齿 使文字清晰
  if (Cesium.FeatureDetection.supportsImageRenderingPixelated()) {
    // 判断是否支持图像渲染像素化处理
    viewer.value.resolutionScale = window.devicePixelRatio;
  }

  // 去除版权信息
  viewer.value._cesiumWidget._creditContainer.style.display = "none";

  // 修改鼠标左键平移、滚轮缩放、右键旋转视角
  //缩放
  viewer.value.scene.screenSpaceCameraController.zoomEventTypes = [
    Cesium.CameraEventType.WHEEL,
    Cesium.CameraEventType.PINCH,
  ];
  //视图视角切换
  viewer.value.scene.screenSpaceCameraController.tiltEventTypes = [
    Cesium.CameraEventType.PINCH,
    Cesium.CameraEventType.RIGHT_DRAG,
  ];
  
}

onMounted(() => {
  initCesium();
})
</script>

<style scoped>
#cesiumContainer {
  position: relative;
  width: 100vw;
  height: 100vh;
}
</style>

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值