react中使用Cesium

Cesium初始化的配置项说明

animation:是否显示动画控制器。
baseLayerPicker:是否允许用户选择基础图层。
fullscreenButton:是否显示全屏按钮。
vrButton:是否显示VR按钮。
geocoder:是否显示地理编码器,或应该包含哪些Geocoder服务对象。
homeButton:是否显示主页按钮。
infoBox:是否显示信息框。
sceneModePicker:是否显示场景模式选择器。
selectionIndicator:是否显示选择指示器。
timeline:是否显示时间轴。
navigationHelpButton:是否显示导航帮助按钮。
navigationInstructionsInitiallyVisible:在初始加载时,是否自动显示导航说明。
scene3DOnly:是否禁用2D地图模式。
shouldAnimate:是否自动运行动画。
clockViewModel:ClockViewModel对象,用于控制时间和动画。
selectedImageryProviderViewModel:当前选择的图像提供者。
imageryProviderViewModels:可用图像提供者。
selectedTerrainProviderViewModel:当前选择的地形提供者。
terrainProviderViewModels:可用地形提供者。
baseLayer:ImageryLayer对象,用于设置基础图层。
terrainProvider:TerrainProvider对象,用于设置地形提供者。
terrain:Terrain对象,用于控制地形的外观和行为。
skyBox:SkyBox对象,用于控制天空盒的外观和行为。
skyAtmosphere:SkyAtmosphere对象,用于控制大气影响的外观和行为。
fullscreenElement:全屏元素。
useDefaultRenderLoop:是否使用Cesium的默认渲染循环。
targetFrameRate:目标帧速率,以帧/秒为单位。
showRenderLoopErrors:是否在控制台输出渲染循环错误消息。
useBrowserRecommendedResolution:是否使用浏览器建议的分辨率。
automaticallyTrackDataSourceClocks:是否自动跟踪数据源时钟。
contextOptions:WebGL上下文选项。
sceneMode:场景模式(2D、3D或双眼立体)。
mapProjection:地图投影类型。
globe:Globe对象,用于控制球形地球的外观和行为。
orderIndependentTranslucency:是否启用无序透明度。
creditContainer:显示版权信息的元素。
creditViewport:版权信息元素的视口。
dataSources:DataSourceCollection对象,表示要可视化的数据源集合。
shadows:是否启用阴影。
terrainShadows:地形阴影类型。
mapMode2D:2D地图模式下地图行为。
projectionPicker:是否显示投影选择器。
blurActiveElementOnCanvasFocus:获取焦点时是否模糊当前活动元素。
requestRenderMode:渲染模式(RENDER_ONCE、ANIMATE、SCENE2D、SCENE3D和MORPH)。
maximumRenderTimeChange:每帧允许的最大渲染时间(毫秒)。
depthPlaneEllipsoidOffset:深度平面和椭球体之间的偏移量。
msaaSamples:抗锯齿采样级别。

安装vite-plugin-cesium插件

npm i cesium vite-plugin-cesium vite -D


在vite.config.js文件中配置使用插件

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import cesium from 'vite-plugin-cesium';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react(),cesium()],
})

组件中使用
import * as Cesium from "cesium"
import { useEffect } from "react";

const Sert=()=>{
    useEffect(()=>{
        const viewer=new Cesium.Viewer("mars3dContainer",{
              /*在给cesium使用html2canvas插件加截图保存控件时,提示错误Blocked script execution in 'about:blank' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.*/

            infoBox: false
            // terrainProvider:  Cesium.createWorldImageryAsync() ,
        })
        // return ()=>{
        //     viewer?.destroy();
        // }
    },[])

    return (<>
    
) } export default Sert;

还要把node_modules\cesium\Build\Cesium 目录下的

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ba99719f7132453c9291dcc6e7051ff5.png)
都要拷贝到根目录下的pubilc下即可


  • Workers
  • Assets
  • ThirdParty
  • Widgets

现在就显示3D地图了

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d13eadf450e4200a3b05cd8dd03018a.png)

如果不行

你可能感兴趣的:(react.js,前端,前端框架)