cesium学习

204 阅读1分钟

一、 cesium

参考 GIS李胜 vite+cesium框架搭建 10秒钟搭建 Vite + Cesium 开发环境 - 知乎 (zhihu.com) 1.基本步骤

npm i cesium
npm i vite-plugin-cesium -D
  1. 配置插件
import cesium from 'vite-plugin-cesium'; // 引入插件                   
export default () => {
  return {
    plugins: [
      vue(),
      cesium(),
    ],        
  },
};
  1. 如果是typescript环境的话、还需要安装对应的声明文件。 "无法找到模块“cesium/Build/Cesium”的声明文件。
npm i --save-dev @types/cesium

因为声明文件的问题、暂时搁置。

结合后续的参考、可以在这里进行处理

<template>
    <div class="bg-red-300">
      <div class="cesium-container" ref="mapRef" />
    </div>
  </template>
  <script lang="ts" setup>
import { ref, defineComponent, onMounted } from "vue";
import { Viewer } from "cesium";
const mapRef = ref<HTMLDivElement | null>(null);

    onMounted(() => {
     console.log(mapRef.value) // 输出:div.cesium-container
      mapRef.value && new Viewer(mapRef.value);
    });
;
</script>


<style lang="scss" scoped>

</style>

其中mapRef.vue是一个节点元素、第二个参数可以提供配置项、以对象的形式提供。

mapRef.value && new Viewer(mapRef.value, {
    animation: true, // 动画小组件
    baseLayerPicker: false, // 底图组件,选择三维数字地球的底图(imagery and terrain)。
    fullscreenButton: false, // 全屏组件
    vrButton: false, // VR模式
    geocoder: false, // 地理编码(搜索)组件
    homeButton: false, // 首页,点击之后将视图跳转到默认视角
    infoBox: false, // 信息框
    sceneModePicker: true, // 场景模式,切换2D、3D 和 Columbus View (CV) 模式。
    selectionIndicator: false, // 是否显示选取指示器组件
    timeline: true, // 时间轴
    navigationHelpButton: false, // 帮助提示,如何操作数字地球。
    // 如果最初应该看到导航说明,则为true;如果直到用户明确单击该按钮,则该提示不显示,否则为false。
    navigationInstructionsInitiallyVisible: false,
  });

暂时参考:10秒钟搭建 Vite + Cesium 开发环境 - 知乎 (zhihu.com) 直接使用命令简历一个基础的cesium项目:

npx create-cesium
  • 输入项目名
  • 选择对应的模板 这里选择cesium-vue-ts,正好作为参考
  • 依次输入以下命令:
  1. cd cesium-project
  2. npm install
  3. npm run dev

其他一些配置

1.隐藏版权信息

<template>
    <div class="bg-red-300">
      <div class="cesium-container" ref="mapRef" />
    </div>
  </template>
  <script lang="ts" setup>
import { ref, defineComponent, onMounted } from "vue";
import { Viewer } from "cesium";
const mapRef = ref<HTMLDivElement | null>(null);

    onMounted(() => {
      console.log(mapRef.value)
      if( mapRef.value){
      const viewer =   new Viewer(mapRef.value, {
    animation: true, // 动画小组件
    baseLayerPicker: true, // 底图组件,选择三维数字地球的底图(imagery and terrain)。
    fullscreenButton: true, // 全屏组件
    vrButton: true, // VR模式
    geocoder: true, // 地理编码(搜索)组件
    homeButton: true, // 首页,点击之后将视图跳转到默认视角
    infoBox: true, // 信息框,在地图上点击一个点图标,弹出一个信息提示框,可以跟随图表一起移动
    sceneModePicker: true, // 场景模式,切换2D、3D 和 Columbus View (CV) 模式。
    selectionIndicator: true, // 是否显示选取指示器组件
    timeline: true, // 时间轴
    navigationHelpButton: false, // 帮助提示,如何操作数字地球。
    // 如果最初应该看到导航说明,则为true;如果直到用户明确单击该按钮,则该提示不显示,否则为false。
    navigationInstructionsInitiallyVisible: false,
  });
  // 获取到对应的DOM节点、然后根据DOM的操作、来隐藏logo信息
 let copyrightDom = viewer.cesiumWidget.creditContainer as HTMLElement;
  copyrightDom.style.display = "none";
}

     
});
;
</script>


<style lang="scss" scoped>

</style>