收藏 | 超全的三维GIS—Cesium教程
Cesium是什么?
我们打开Cesium官网,能够很清晰的看到官方赋予Cesium的使命,即构建世界一流的3D地理空间应用程序。那Cesium到底是个什么东东呢?
Cesium是一个跨平台、跨浏览器的展示三维地球和地图的javascript库
Cesium使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,但是浏览器必须支持WebGL
Cesium是基于Apache2.0许可的开源程序,它可以免费的用于商业和非商业用途
Cesium强调的是BIM三维模型,倾斜摄影的表达,重点在于三维建模与时态模拟.
Cesium支持的数据格式
影像数据:Bing、天地图、ArcGIS、OSM、WMTS、WMS等
地形数据:ArcGIS、谷歌、STK等
矢量数据:KML、KMZ、GeoJSON、TopoJSON、CZML
三维模型:GLTF、GLB(二进制glTF文件)
三维瓦片:3D Tiles(倾斜摄影、人工模型、 三维建筑物、CAD、BIM,点云数据等)
Cesium的优点
1.支持倾斜摄影,地形,海洋环境等三维场景展现...
2.支持三维瓦片格式:m3d.
3.支持BIM管网建模和3dx,gltf,的展示.
4.支持时态,时间播放,时间动画,时空聚类等时空展现
Cesium的缺点
1.webgl的渲染没有类似unity的特殊光晕效果,虽然使用了webgl但效果平平
2.独特自成体系的模型与几何绘制策略,需要重新学习
3.代码过重,并且主视图必须获取顶级div,影响工程代码结构,复杂场景需要手动开辟释放内存
Cesium教程
https://github.com/vtxf/Cesium-Tutorials-Index
Cesium是一个用于显示三维地球和地图的开源js库。
官网地址:https://cesiumjs.org/。
它可以用来显示海量三维模型数据、影像数据、地形高程数据、矢量数据等等。三维模型格式支持gltf、三维瓦片模型格式支持3d-tilse。矢量数据支持geojson、topojson格式。影像数据支持wmts等。高程支持STK格式。
Cesium每月出一个版本。
下载地址:
https://cesiumjs.org/downloads/
Cesium教程汇总
Cesium官方教程
教程集合:
https://cesiumjs.org/tutorials/
API文档:
https://cesiumjs.org/refdoc/
示例程序:
https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/
github地址:
https://github.com/AnalyticalGraphicsInc/cesium.git
Cesium官网国内访问较慢,可以在github上下载源码或者zip包来开发,其中已包含示例和API文档。
Peter Lu的Cesium教程汇总
http://www.cnblogs.com/fuckgiser/p/5706842.html
Cesium应用篇:1快速搭建
http://www.cnblogs.com/fuckgiser/p/5633748.html
Cesium应用篇:2影像服务(上)
http://www.cnblogs.com/fuckgiser/p/5647429.html
Cesium应用篇:2影像服务(下)
http://www.cnblogs.com/fuckgiser/p/5647457.html
Cesium应用篇:3控件(1)
Clock http://www.cnblogs.com/fuckgiser/p/5669920.html
Cesium应用篇:3控件(2)
BaseLayerPicker http://www.cnblogs.com/fuckgiser/p/5686238.html
Cesium应用篇:3控件(3)
SelectionIndicator& InfoBox http://www.cnblogs.com/fuckgiser/p/5702544.html
Cesium应用篇:3控件(4)
Geocoder http://www.cnblogs.com/fuckgiser/p/5708673.html
Cesium应用篇:3控件(5)
CesiumInspector http://www.cnblogs.com/fuckgiser/p/5715342.html
Cesium应用篇:3控件(6)
FullScreen/ VR /
Home http://www.cnblogs.com/fuckgiser/p/5716046.html
合肥火星科技
快速入门:
http://www.marsgis.cn/cesium/docs/go.html?id=11
翻译的Cesium教程:
http://www.marsgis.cn/cesium/docs/go.html?id=12
工具汇总
gltf相关
Cesium加载模型时使用gltf格式。gltf格式是opengl官方的三维模型格式,充分考虑了网络模式下数据加载的特点,非常适合网络环境下使用。gltf目前已有1.0和2.0两个版本,Cesium从1.36版开始同时支持gltf1.0和支持gltf2.0格式。
gltf
https://github.com/KhronosGroup/glTF
gltf规格说明
glTF-Sample-Models
https://github.com/KhronosGroup/glTF-Sample-Models
样例数据
gltf-pipeline
https://github.com/AnalyticalGraphicsInc/gltf-pipeline
用来处理gltf格式文件,主要功能有:
1)将gltf格式分解成多个文件(纹理、顶点二进制数据、shader等)
2)文本格式(gltf)和二进制格式(glb)的互转
3)将纹理压缩成dds、pvr、etc等分别适合windows桌面端、iphone手机端、android手机端纹理的高效显示
4)自动进行纹理烘焙,生成环境遮蔽纹理(ambient occlusion)
5)对顶点数据进行压缩等
gltf-vscode
https://github.com/AnalyticalGraphicsInc/gltf-vscode
vscode插件,可以在vscode中打开gltf文件的同时显示三维模型。
obj2gltf
https://github.com/AnalyticalGraphicsInc/obj2gltf
将obj格式模型转成gltf格式模型
3d-tiles相关
3d-tiles是Cesium用来显示大规模海量三维模型数据格式,比如倾斜摄影数据,可以通过转化成3d-tiles格式来在Cesium中显示出来。3d-tiles格式考虑了普通三维模型、点云数据、矢量数据等形式,其中矢量数据格式还在开发中,目前的源码中已经有体现,但是官方还未做宣传;普通三维模型等格式已相对成熟。3d-tiles内部实际上是使用gltf来作为单个瓦片模型的格式。
3d-tiles
https://github.com/AnalyticalGraphicsInc/3d-tiles 3d-tiles格式标准
3d-tiles-tools
https://github.com/AnalyticalGraphicsInc/3d-tiles-tools 3d-tiles格式处理工具,可以对3d-tiles进行调试、分析、验证。
3d-tiles-samples
https://github.com/AnalyticalGraphicsInc/3d-tiles-samples 3d-tiles的样例数据
其他杂项
cesium-threejs-experiment
https://github.com/AnalyticalGraphicsInc/cesium-threejs-experiment
同时使用Cesium和three.js进行三维展示
quantized-mesh
https://github.com/AnalyticalGraphicsInc/quantized-mesh
Cesium所使用的STK地形格式标准
turf
https://github.com/Turfjs/turf
一个用于空间分析的JavaScript库。它包括传统的空间操作,用于创建GeoJSON数据的帮助函数,以及数据分类和统计工具。Turfjs可以作为客户端插件添加到您的网站,也可以使用Node.js运行Turf服务器端。
citygml-to-3dtiles
https://github.com/njam/citygml
文章授权转载: 新中地教育
版权归原作者所有
- END -
倾斜摄影测量和游戏的未来
实景三维看台湾
虚幻引擎中的旧金山实景三维模型
实景三维赋能城市精细化管理