当前位置: 首页 > java >正文

Cesium快速入门到精通系列教程四:加载渲染GEOJSON数据

在 Cesium 1.93 中加载和渲染 GeoJSON 数据主要通过 GeoJsonDataSource 实现

一、基础加载方法

1. ​​直接加载本地/远程文件​​

  const viewer = new Cesium.Viewer("cesiumContainer", {geocoder: false, //设置搜索框可见homeButton: false, // 返回初始位置键是否可见sceneModePicker: false, // 查看器选择模式选择键是否可见baseLayerPicker: false, // 图层选择键是否可见navigationHelpButton: false, // 是否显示帮助按钮animation: false, // 是否显示播放控制按钮timeline: false, // 是否显示时间轴fullscreenButton: false, // 是否显示全屏按钮});viewer.dataSources.add(Cesium.GeoJsonDataSource.load('https://geo.datav.aliyun.com/areas_v3/bound/100000.json', {stroke: Cesium.Color.HOTPINK,fill: Cesium.Color.BLUE,strokeWidth: 3,markerSymbol: '?'}));// https://geo.datav.aliyun.com/areas_v3/bound/100000.json也可以改成本地数据

 或者使用以下方式

  const viewer = new Cesium.Viewer("cesiumContainer", {geocoder: false, //设置搜索框可见homeButton: false, // 返回初始位置键是否可见sceneModePicker: false, // 查看器选择模式选择键是否可见baseLayerPicker: false, // 图层选择键是否可见navigationHelpButton: false, // 是否显示帮助按钮animation: false, // 是否显示播放控制按钮timeline: false, // 是否显示时间轴fullscreenButton: false, // 是否显示全屏按钮});Cesium.GeoJsonDataSource.load('https://geo.datav.aliyun.com/areas_v3/bound/100000.json', {stroke: Cesium.Color.HOTPINK,fill: Cesium.Color.PINK,strokeWidth: 3,markerSymbol: '?'}).then(dataSource => {viewer.dataSources.add(dataSource);});

二、样式自定义

1. ​​全局样式配置​​

加载时通过 options 参数设置默认样式:

viewer.dataSources.add(Cesium.GeoJsonDataSource.load('data/roads.geojson', {stroke: Cesium.Color.HOTPINK,  // 轮廓颜色fill: Cesium.Color.PINK,       // 填充颜色strokeWidth: 3                 // 轮廓线宽})
);

三、性能优化(大规模数据)

当 GeoJSON 包含数万+面片时,建议使用 Primitive 替代 Entity

const features = geojsonData.features;
const instances = [];for (const feature of features) {const geometry = new Cesium.PolygonGeometry({polygonHierarchy: Cesium.PolygonHierarchy.fromDegreesArray(feature.geometry.coordinates[0])});instances.push(new Cesium.GeometryInstance({ geometry }));
}const primitive = new Cesium.Primitive({geometryInstances,appearance: new Cesium.EllipsoidSurfaceAppearance({material: Cesium.Material.fromType('Color', {uniforms: { color: new Cesium.Color(1.0, 0.0, 0.0, 0.8) }})})
});
viewer.scene.primitives.add(primitive);

http://www.xdnf.cn/news/10530.html

相关文章:

  • BA-SAM: 用于 Segment Anything 模型的可扩展偏置模式注意力掩码
  • vue-13(延迟加载路由)
  • Oracle的Hint
  • 2025/6月最新Cursor(0.50.5版本)一键自动更换邮箱无限续杯教程
  • Spring 5 响应式编程:构建高性能全栈应用的关键
  • 数据库系统概论(十二)SQL 基于派生表的查询 超详细讲解(附带例题表格对比带你一步步掌握)
  • MySQL-多表关系、多表查询
  • Qt OpenGL 相机实现
  • 机器学习算法:逻辑回归
  • 操作系统复习
  • 方法重写与方法重载详解
  • CSS之动画(奔跑的熊、两面反转盒子、3D导航栏、旋转木马)
  • 谷歌CEO皮查伊眼中的“下一代平台“与未来图景
  • 基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等
  • Pyomo中线性规划接口的使用
  • 为什么ping显示connect:network is unreachable,如何排查网络不通问题?
  • LearnOpenGL-笔记-其十三
  • py爬虫的话,selenium是不是能完全取代requests?
  • NodeJS全栈WEB3面试题——P2智能合约与 Solidity
  • 单调栈(打卡)
  • 【C++/Linux】TinyWebServer前置知识之IP协议详解
  • 【iOS】YYModel源码解析
  • 告别printf!嵌入式系统高效日志记录方案
  • 如何评估 RAG 的分块Chunking策略
  • 【沉浸式求职学习day52】【初识Mybaits】
  • 风控研发大数据学习路线
  • Java生态中的NLP框架
  • 【C语言】C语言经典小游戏:贪吃蛇(上)
  • Vortex GPGPU的github流程跑通与功能模块波形探索(四)
  • 解决:install via Git URL失败的问题