矢量数据"/>
Cesium 加载矢量数据
矢量数据介绍
在GIS中,对于数据格式的分类,我们一般会将其分为栅格数据和矢量数据两种类型。 栅格数据(影像数据)是将空间看做离散的像元,由二维数组或者其他数据组织方式来进行表达。 矢量数据恰恰相反,它将空间看成是连续的,用要素(点、线、面)来进行表达。在GIS应用中最熟悉的矢量数据就是Shpfile,更多关于矢量数据查看。
Cesium 能够直接支持的矢量数据格式包括:geojson、topojson、kml 以及具有时间特性的 czml
在线工具推荐
- JSON在线解析及格式化:/
- 在线生成 GeoJSON:/
- shp数据转 GeoJSON 和 TopoJSON:/
- GeoJson和TopopJson在线转换:/
一、加载 GeoJSON & TopoJSON
【官方示例】GeoJSON & TopoJSON
1.1 GeoJSON & TopoJSON 简介
- GeoJSON & TopoJSON 格式的对比,最大的区别在于TopoJSON将两个相连的边合并为一个边,大大的减少了数据存储空间。
GeoJSON
格式:我的理解就是Python
中复复杂的字典,【截图所在地址】自行查看。形式如下:
可以将本地的
shp
文件在这网站上导出,但不建议(数据安全问题)。还可以通过Cesium
实验室来进行数据转换,ArcMap
也行,最好用ArcMap
转,最为安全。记得转shp前将坐标系变为wgs-84哦!或者墨卡托
1.2 加载 GeoJSON & TopoJSON
【官方加载GeoJSON
文档】GeoJSON
以下代码是通过
Django
框架来实现的,结合官方示例
- GeoJSON
<script>var viewer = new Cesium.Viewer('cesiumContainer');viewer.dataSources.add(Cesium.GeoJsonDataSource.load('{% static "GIS/json/china.json" %}', {stroke: Cesium.Color.HOTPINK,fill: Cesium.Color.PINK.withAlpha(0.5),strokeWidth: 3}));</script>
- TopoJSON
var dataSource = viewer.dataSources.add(Cesium.GeoJsonDataSource.load("/static/data/ne_10m_us_states.topojson"));
二、加载 KML
KML (keyhole markup language)
是一种基于XML
语法格式的文件,用来描述和存储地理信息数据(点、线、面、多边形、多面体以及模型等),通常应用于XML
文件最大的不同就是KML描述的是地理信息数据,同时KML
已正式被OGC
采用,成为OGC
众多规范中的一个。KML
文件有两个文件扩展名:.KML
和.KMZ
(一个或几个KML
文件的压缩集,采用zip
格式压缩)
var options = {camera: viewer.scene.camera,canvas: viewer.scene.canvas,};
var dataSource = Cesium.KmlDataSource.load("/static/data/kml/gdpPerCapita2008.kmz",options);viewer.dataSources.add(dataSource);viewer.camera.flyHome(0);
三、加载 CZML
CZML
是一种JSON
格式的字符串,用于描述与时间有关的动画场景,CZML
包含点、线、地标、模型和其他的一些图形元素,并指明了这些元素如何随时间而变化。Cesium拥有一套富客户端API
,通过CZML
采用数据驱动的方式,不用写代码我就可以使用通用的Cesium viewer
构建出丰富的场景。更多关于CZML查看链接
var dataSource = Cesium.CzmlDataSource.load("/static/data/Vehicle.czml");
更多推荐
Cesium 加载矢量数据
发布评论