news 2026/4/23 12:22:12

Cesium快速入门26:加载渲染GeoJson数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cesium快速入门26:加载渲染GeoJson数据

用 Cesium 做地理信息可视化,最常见的数据来源就是GeoJSON
今天带你把“四川地图”整个搬进来,一行代码加载,一行代码上色,比用 Three.js 自己解析省十倍功夫。


一、GeoJSON 长啥样?

GeoJSON 里存的是“经纬度 + 属性”,可以是省界、道路、点位,甚至航拍区域。
阿里 DataV 免费提供了全国省市区数据,今天拿“四川省”练手:
地址:https://datav.aliyun.com/portal/school/atlas/area_selector
(想换广东、江苏、道路网,同理复制链接即可)


二、最简加载:两步到位

  1. 把下载好的四川省.geojson扔进项目/geojson/文件夹;

  2. 两行代码直接渲染:

/* 1. 加载 GeoJSON(返回 Promise) */ const scGeoJson = Cesium.GeoJsonDataSource.load('./geojson/四川省.geojson'); /* 2. 添加到场景 */ viewer.dataSources.add(scGeoJson);

刷新地球——四川省


三、等加载完成?用 await 更直观

load本质是 Ajax,想等数据就位后再统一处理,可以顺手 await:

const scGeoJson = await Cesium.GeoJsonDataSource.load('./geojson/四川省.geojson'); viewer.dataSources.add(scGeoJson);

这样后续想缩放、染色、弹窗,都能立刻拿到完整对象。


四、一次配好色:stroke、fill、线宽都能传

Cesium 把 GeoJSON 所有样式参数都包成配置项,加载时一起丢进去即可:

const scGeoJson = Cesium.GeoJsonDataSource.load('./geojson/四川省.geojson', { stroke: Cesium.Color.HOTPINK, // 边线颜色 fill: Cesium.Color.PINK.withAlpha(0.2), // 填充颜色 strokeWidth: 3, // 边线像素宽 markerSymbol: '?' // 如果是点,就显示问号图标 }); viewer.dataSources.add(scGeoJson);

效果:粉红边 + 半透明桃心填充,比默认好看一百倍。


五、跟 Three.js 比,快在哪里?

步骤Three.jsCesium
解析文件手写 JSON 遍历一行load自动完成
坐标转换自己转经纬度→世界内部自动转
面/线生成手动搭 Geometry自动根据类型生成
渲染自己写材质可选默认或自定义

一句话:Cesium 把“解析→转换→生成→渲染”全链路封装好,我们只需把 GeoJSON 文件喂给它。


六、小结与拓展

  • 任何 GeoJSON(省界、道路、楼栋)都用同一套路:load→add

  • 样式在加载时一次配完,后期也可通过entities数组再细调。

  • 数据更新?dataSources.removeAll()清掉旧数据,重新load新文件即可。

下节课,我们给这些行政区做“悬浮高亮 + 点击弹窗”,让地图真正“活”起来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 4:20:35

RPC与RPC框架Dubbo详解

本文总结:本文介绍了RPC(远程过程调用)的基本概念、工作流程及与HTTP的区别。RPC允许程序像调用本地方法一样调用远程服务,通过提供者、调用方和注册中心三个角色实现。文章对比了RPC与HTTP在设计、协议性能、服务治理等方面的差异…

作者头像 李华
网站建设 2026/4/23 11:38:54

安锐云私有化部署 多场景自动化监测 数据完整可控更经济

在关键基础设施监测领域,数据安全与自动化监测效率缺一不可!安锐云私有化部署方案,专为铁路、军事设施、核电站等高敏感场景量身打造,将监测平台完全部署于用户本地服务器,实现敏感数据本地存储不外流,从根…

作者头像 李华
网站建设 2026/4/23 11:36:29

短UUID+Python+Java

Python pip install shortuuidimport shortuuid shortuuid.ShortUUID().random(length22) 输出 kC7mzVXLZjZEQ65hX5EwxSJava import java.util.UUID; import java.math.BigInteger;public class ShortUUIDGenerator {public static void main(String[] args) {String shortUUID…

作者头像 李华
网站建设 2026/4/23 9:55:53

OpenAI 2026 年愿景解析:人工智能代理、计算能力为何不是问题

image.png 最近我在通勤路上听了一期Lennys Podcast,嘉宾是OpenAI Codex的产品负责人Alexander Embiricos。说实话,听完这期节目,我有一种久违的兴奋感,甚至可以说是头皮发麻。我们每天都在聊AI编程,聊Cursor&#xf…

作者头像 李华