vlambda博客
学习文章列表

「GIS基础」JSON数据格式在GIS领域的运用


文/妙手 

生命不息,折腾不止


通过上一篇文章《》,我们对JSON有了一定的了解,本文旨在探究JSON数据格式在GIS领域的使用,以及它与GeoJSON数据格式有着怎样的关系。


1

ArcGIS中的使用


在ArcGIS Desktop工具箱中有一个JSON工具集,可以用于要素和JSON(或者GeoJSON)间的转换。


「GIS基础」JSON数据格式在GIS领域的运用


无论是JSON还是GeoJSON都是基于文本的轻量级的数据交换格式,用于ArcGIS和其他软件间共享GIS数据。这些格式和语言无关,大多数编程语言(像Python, C#, Java, JavaScript等)都提供了读写操作JSON和GeoJSON格式数据的库。


1

Features To JSON


该工具将要素转换为JSON格式,与要素相关联的字段、几何图形、空间参考也会转换成相应的JSON表现形式,然后存储在后缀为.json的文件中。我们选一个点要素文件尝试一下:


「GIS基础」JSON数据格式在GIS领域的运用

打开看到是很长的一行:


「GIS基础」JSON数据格式在GIS领域的运用


我们勾选上可选项格式化输出(Formatted JSON)后,再输出一次,就是调整格式后的的输出,自上而下依次是显示字段名(displayFieldName)、字段别名(fieldAliases)、几何类型(geometryType)、空间参考(spatialReference)、字段(fields),然后就是一个个要素(feature)的具体内容:


「GIS基础」JSON数据格式在GIS领域的运用

「GIS基础」JSON数据格式在GIS领域的运用


当然,这里是为了便于我们阅读才勾选格式化输出,实际的应用中并不推荐,大量的空格、换行会增加很多不必要的字节,造成文件变大,传输速度降低。接着的两个可选项,当要素有Z值、M值时,对应勾选。最后一个可选项是GeoJSON, 由此可知,ArcGIS中该工具默认的是使用JSON数据格式,我们勾选GeoJSON后,再输出一次,我们选取其中的某一个要素,看看区别在哪里:

「GIS基础」JSON数据格式在GIS领域的运用(上图:JSON与GeoJSON对比


无论JSON还是GeoJSON都包含了该要素的全部信息,只是呈现格式上有所不同,JSON中的attributes对应GeoJSON中的properties,在geometry上,GeoJSON会更明确的指出该要素为Point, 而JSON在开头统一指出。关于GeoJSON, 我们在下文进一步了解。

1

JSON To Features


将JSON数据格式转换为要素,该工具使用较为简单,在此不再赘述。


「GIS基础」JSON数据格式在GIS领域的运用

1

扩展:GeoJSON

「GIS基础」JSON数据格式在GIS领域的运用


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中部分重要的基本对象。

「GIS基础」JSON数据格式在GIS领域的运用


Point

「GIS基础」JSON数据格式在GIS领域的运用

LineString

「GIS基础」JSON数据格式在GIS领域的运用

Polygon

「GIS基础」JSON数据格式在GIS领域的运用

MultiPoint

「GIS基础」JSON数据格式在GIS领域的运用

MultiLineString

「GIS基础」JSON数据格式在GIS领域的运用

MultiPolygon

「GIS基础」JSON数据格式在GIS领域的运用

1

总结


本文中,我们尝试了ArcGIS Desktop中JSON工具集的使用,了解了GeoJSON数据格式,惊讶的发现其设计与ArcObjects中设计惊人的相似,最后列举了GeoJSON中基本的几何对象。如果大家希望对GeoJSON了解更进一步,请参考最新的国际GeoJSON数据格式标准规范(RFC 7946),点击 阅读原文 获取下载链接。


1

扩展阅读











1

分享你的文章


「GIS基础」JSON数据格式在GIS领域的运用

码加小编

一起"稿"GIS

「GIS基础」JSON数据格式在GIS领域的运用



END


关注 麻辣GIS
627853279(QQ群三)
436386604(QQ群四)
606176554(QQ群五)

http://malagis.com