cesium编程入门(十三)加载geojson

简介

GeoJSON是一种用于编码各种地理数据结构的格式官网。满足JSON语法格式,具体的说明有两处,一是:wiki-GeoJSON_draft_version_6说明-英文,还有一个是在github上,开源中国上有中英文对照 geojson-spec,GeoJson用的比较广泛,如果想进一步了解二者的不同,请查看下面的扩展阅读

补充 样式说明

topojson 的样式只能通过加载时以参数传入进行修改Cesium.GeoJsonDataSource.load(url,option),即设置 option参数

geojson的样式可以通过和topojson相同的参数设置,也可以写在.geojson文件中,

参考 mapping-geojson-files-on-github

例如(演示,添加注释,不能正常运行):

{
    "type": "Feature",
    "geometry": {
    "type": "Point",
    "coordinates": [
        0.0,
        0.0
    ]
    },
    "properties": {
    "title": "",
    //无marker-symbol属性
    //"marker-symbol": "0",
    //"marker-symbol": "f",
    //"marker-symbol": "bus",
    "marker-color": "#B9EB14"
    }
}

以上四种marker-symbol分别对应四种效果:

unnamenumberfbus
更多效果请参考

cesium-GeoJSON

marker-symbol icons

地理信息数据说明–个人理解

一幅图里面有多个图层,一个图层上有多个元素,一个元素包括形状和属性

一幅图的信息记录在多个表格中,一个表格有多行,一行信息包括一个形状字段和多个属性字段

对应关系如图:

dataref

cesium调用

加载topojson和geojson就比较简单了,(以下代码来自官方包的例子)

viewer.dataSources.add(Cesium.GeoJsonDataSource.load('../../SampleData/ne_10m_us_states.topojson', {
        stroke: Cesium.Color.HOTPINK,
        fill: Cesium.Color.PINK.withAlpha(0.5),
        strokeWidth: 3
    }));

参考 cesium-GeoJsonDataSource

扩展阅读

GeoJson和TopoJson数据格式的对比

GeoJSON 和 TopoJSON 文件有什么不同?

topojson-specification

工具网站

Shapefile, GeoJSON, TopoJSON, DBF and CSV files 互转

总结

GeoJson和TopoJson比较简单,本质上只是数据的一种记录方式,结构上也比较简单,掌握规律之后理解起来也很容易。

文章里面引用了很多链接,网上搜一搜资源比较多,这篇日志并没有大量的复制粘贴别人的成果,只是整理了一下常用的资源。

希望有帮助~

9 thoughts to “cesium编程入门(十三)加载geojson”

  1. 大佬,cesium可以加载geojson和3dtiles数据,我想问一下什么情况需要用geojson啊?是因为它是用的entities方式加载,所以比起3dtiles对单独实体的样式修改可以更精细吗,但是也会更卡。

发表评论