「GIS基础」JSON数据格式在GIS领域的运用
Posted 麻辣GIS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「GIS基础」JSON数据格式在GIS领域的运用相关的知识,希望对你有一定的参考价值。
文/妙手
生命不息,折腾不止
通过上一篇文章《》,我们对JSON有了一定的了解,本文旨在探究JSON数据格式在GIS领域的使用,以及它与GeoJSON数据格式有着怎样的关系。
1
ArcGIS中的使用
在ArcGIS Desktop工具箱中有一个JSON工具集,可以用于要素和JSON(或者GeoJSON)间的转换。
无论是JSON还是GeoJSON都是基于文本的轻量级的数据交换格式,用于ArcGIS和其他软件间共享GIS数据。这些格式和语言无关,大多数编程语言(像Python, C#, Java, javascript等)都提供了读写操作JSON和GeoJSON格式数据的库。
1
Features To JSON
该工具将要素转换为JSON格式,与要素相关联的字段、几何图形、空间参考也会转换成相应的JSON表现形式,然后存储在后缀为.json的文件中。我们选一个点要素文件尝试一下:
打开看到是很长的一行:
我们勾选上可选项格式化输出(Formatted JSON)后,再输出一次,就是调整格式后的的输出,自上而下依次是显示字段名(displayFieldName)、字段别名(fieldAliases)、几何类型(geometryType)、空间参考(spatialReference)、字段(fields),然后就是一个个要素(feature)的具体内容:
当然,这里是为了便于我们阅读才勾选格式化输出,实际的应用中并不推荐,大量的空格、换行会增加很多不必要的字节,造成文件变大,传输速度降低。接着的两个可选项,当要素有Z值、M值时,对应勾选。最后一个可选项是GeoJSON, 由此可知,ArcGIS中该工具默认的是使用JSON数据格式,我们勾选GeoJSON后,再输出一次,我们选取其中的某一个要素,看看区别在哪里:
(上图:JSON与GeoJSON对比)
无论JSON还是GeoJSON都包含了该要素的全部信息,只是呈现格式上有所不同,JSON中的attributes对应GeoJSON中的properties,在geometry上,GeoJSON会更明确的指出该要素为Point, 而JSON在开头统一指出。关于GeoJSON, 我们在下文进一步了解。
1
JSON To Features
将JSON数据格式转换为要素,该工具使用较为简单,在此不再赘述。
1
扩展:GeoJSON
GeoJSON是一种用于编码各种地理数据结构的格式。
2015年,互联网工程任务组(IETF)与原始规范作者组建了一个GeoJSON工作组,一起规范GeoJSON标准。在2016年8月,推出了最新的GeoJSON数据格式标准规范(RFC 7946),需要的同学可以在文末 阅读原文 获取。
GeoJSON是一种基于JSON的地理空间数据交换格式,它定义了几种类型JSON对象以及它们组合在一起的方法,以表示有关地理要素、属性和它们的空间范围的数据。
GeoJSON使用唯一地理坐标参考系统WGS1984和十进制度单位。
1
GeoJSON中的对象
一个GeoJSON对象可以是Geometry, Feature或者FeatureCollection,可以这样理解一个shp文件类似于一个FeatureCollection对象,一个FeatureCollection对象中可以包括若干个Feature对象,而每一个Feature对象又包含有一个Geometry对象(参见下图中标注的三个“type”)。看到这里,了解过ArcObjects的同学会惊讶的发现,这里的设计逻辑与ArcGIS底层设计惊人的类似,不过转念一想,ArcGIS作为GIS领域的巨头,其部分优秀设计作为行业规范也不足为奇,接下来我们详细看一下GeoJSON中部分重要的基本对象。
Point
LineString
Polygon
MultiPoint
MultiLineString
MultiPolygon
1
总结
本文中,我们尝试了ArcGIS Desktop中JSON工具集的使用,了解了GeoJSON数据格式,惊讶的发现其设计与ArcObjects中设计惊人的相似,最后列举了GeoJSON中基本的几何对象。如果大家希望对GeoJSON了解更进一步,请参考最新的国际GeoJSON数据格式标准规范(RFC 7946),点击 阅读原文 获取下载链接。
1
扩展阅读
1
分享你的文章
扫码加小编
一起"稿"GIS
END
436386604(QQ群四)
606176554(QQ群五)
http://malagis.com
以上是关于「GIS基础」JSON数据格式在GIS领域的运用的主要内容,如果未能解决你的问题,请参考以下文章