一、shapefile
shapefile是美国环境系统研究所公司(ESRI)开发的一种空间数据开放格式。该文件格式已经成为了地理信息软件界的一个开放标准,这表明ESRI公司在全球的地理信息系统市场的重要性。Shapefile也是一种重要的交换格式,它能够在ESRI与其他公司的产品之间进行数据互操作。
shapefile文件指的是一种文件存储的方法,实际上该种文件格式是由多个文件组成的。其中,要组成一个Shapefile,有三个文件是必不可少的,它们分别是".shp", ".shx"与 ".dbf"文件。
必须的文件:
.shp— 图形格式,用于保存元素的几何实体。
.shx— 图形索引格式。几何体位置索引,记录每一个几何体在shp文件之中的位置,能够加快向前或向后搜索一个几何体的效率。
.dbf— 属性数据格式,以dBase IV的数据表格式存储每个几何形状的属性数据。
其他可选的文件:
.prj— 投帧式,用于保存地理坐标系统与投影信息,是一个存储well-known text投影描述符的文本文件。
.sbnand.sbx— 几何体的空间索引
.fbnand.fbx— 只读的Shapefiles的几何体的空间索引
.ainand.aih— 列表中活动字段的属性索引。
.ixs— 可读写Shapefile文件的地理编码索引
.mxs— 可读写Shapefile文件的地理编码索引(ODB格式)
.atx—.dbf文件的属性索引,其文件名格式为shapefile.columnname.atx(ArcGIS 8及之后的版本)
.shp.xml— 以XML格式保存元数据。
.cpg— 用于描述.dbf文件的[代码页],指明其使用的[字符编码]
存储特性:
.shp文件或.dbf文件最大的体积不能够超过2 GB(或2位)。也就是说,一个shapefile最多只能够存储七千万个点坐标。文件所能够存储的几何体的数目取决于单个要素所使用的顶点的数目。
属性数据库格式所使用的.dbf文件基于一个比较古老的[dBase]标准。这种数据库格式天生有许多限制,例如:
无法存储[空值]。这对于数量数据来说是一个严重的问题,因为空值通常都用0来代替,这样会歪曲很多统计表达的结果。
对字段名或存储值中的[Unicode]支持不理想。
字段名最多只能够有10个字符。
最多只能够有255个字段。
只支持以下的数据类型:浮点类型(13字节存储空间),整数(4或9字节存储空间),日期(不能够存储时间,8字节存储空间)和文本(最大254字节存储空间)
浮点数有可能包含舍入错误,因为它们以文本的形式保存。
文件结构如下:
二、gdb
文件地理数据库(File Geodatabase)数据后缀表达为.gdb,整体组织为文件夹,可以存储、查询和管理空间数据和非空间数据。在不使用DBMS的情况下能够扩展并存储大量数据。文件地理数据库可同时有多个用户使用,但一个数据只能有一个用户编辑。因此,一个文件地理数据库可以由多个编辑者访问,但必须编辑不同的数据。
文件结构如下:
三、mdb
个人地理数据库(Personal Geodatabase)数据后缀表达为.mdb,整体组织为文件,所有的数据集都存储于Microsoft Access数据文件内,在Microsoft Access数据文件中存储和管理空间数据和非空间数据。个人数据库存储在Access数据库中,其最大容量为2 GB,并且一次只有一个用户可以编辑个人地理数据库中的数据。
四、geojson
GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON)的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。
格式如下:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [
117.2632598876953,
31.769623866960654
]
}
},
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[
117.26154327392578,
31.756488182839366
],
[
117.27218627929688,
31.75765587470495
]
]
}
},
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
117.26755142211914,
31.76860226951181
],
[
117.26428985595703,
31.765537409484374
],
[
117.2709846496582,
31.763640064307634
],
[
117.27149963378906,
31.7667049871797
],
[
117.26755142211914,
31.76860226951181
]
]
]
}
}
]
}
五、topojson
TopoJSON 是 GeoJSON 的扩展,增加了拓扑逻辑的编码。
TopoJSON 文件中的几何图形不是独立地表示,而是由共享的线段(称为弧线)拼接而成。TopoJSON 消除了冗余,提供了比 GeoJSON 更紧凑的几何表示;典型的 TopoJSON 文件比 GeoJSON 等价文件小 80%。此外,TopoJSON 还为使用拓扑的应用提供了便利,如拓扑保护形状简化、自动地图着色和制图。
格式如下:
{
"type": "Topology",
"arcs": [
[
[33, 112],
[39, -43],
[-5, -69],
[-67, 43],
[33, 69]
]
],
"transform": {
"scale": [0.00010013580322265624, 0.00004430540360871633],
"translate": [117.26428985595703, 31.76364006430763]
},
"objects": {
"test": {
"type": "GeometryCollection",
"geometries": [{
"arcs": [
[0]
],
"type": "Polygon"
}]
}
}
}
六、KML
KML(Keyhole Markup Language,Keyhole 标记语言)最初是由Google 旗下的Keyhole 公司开发和维护的一种基于XML 的标记语言,利用XML 语法格式描述地理空间数据(如点、线、面、多边形和模型等),适合网络环境下的地理信息协作与共享。2008 年4月,KML的最新版本2.2 被OGC 宣布为开放地理信息编码标准,并改由OGC 维护和发展。
格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Placemark>
<name>Simple placemark</name>
<description>Attached to the ground. Intelligently places itself
at the height of the underlying terrain.
</description>
<Point>
<coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
</Point>
</Placemark>
</kml>
七、KMZ
KMZ文件是压缩过的KML文件。由于 KMZ 是压缩包,因此,它不仅能包含 KML文本,也能包含其他类型的文件。如果您的地标描述中链接了本地图片等其他文件,建议您在保存地标时,保存类型选 KMZ 而不选 KML,Google Earth 会把您链接的图片等文件复制一份夹 KMZ 压缩包中。这样,您就可以将包含丰富信息的地标文件发给朋友,一起分享了。
八、GML
GML(Geography Madcup Language)是由OGC制定的基于XML的地理信息(包括几何和属性特征)编码、传输、存储的XML语法规范。它提供了一个开放的,用来定义地理空间数据的框架,允许用户开发出基于XML规范的应用子集H1。由于GML数据在描述、存储、传输地理空间信息时具有很强的可理解性,如果不采取安全措施,GML数据在传输过程中很容易被非法用户截获和篡改。
九、WKT
WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known
binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。
WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。可以通过几何集合的方式来表示不同维度的几何对象。
几何物体的坐标可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一个属于线性参照系统的m值。
十、czml
CZML是一种用来描述动态场景的JSON架构的语言,主要用于Cesium在浏览器中的展示。它可以用来描述点、线、布告板、模型以及其他的图元,同时定义他们是怎样随时间变化的。Cesium拥有一套富客户端API,通过CZML采用数据驱动的方式,不用写代码我就可以使用通用的Cesium viewer构建出丰富的场景。Cesium与CZML的关系就如同Google Earth和KML的关系。
我们将CZML标准以及它的相应实现分为4个部分:
CZML Structure -- CZML文档的整体结构
CZML Content --内容
CZML in Cesium -- Cesium中解析和显示CZML的流程
czml-writer-Architecture –czml-writer的架构
格式如下:
[
// packet one
{
"id":"GroundControlStation"
"position":{"cartographicDegrees":[-75.5,40.0,0.0]},
"point":{ "color":{"rgba":[0,0,255,255]}, } },
// packet two { "id":"PredatorUAV", // ... } ]
参考:https://blog.csdn.net/weixin_33733810/article/details/85969262
https://github.com/AnalyticalGraphicsInc/cesium/wiki/CZML-Structure