麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

「GIS理论」JSON数据格式在GIS领域的运用

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

ArcGIS中的使用

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

JSON and GeoJSON are text-based, lightweight interchange data formats that are used to share GIS data between ArcGIS and other systems.

无论是JSON还是GeoJSON都是基于文本的轻量级的数据交换格式,用于ArcGIS和其他软件间共享GIS数据。

These formats are language-agnostic, and most programming languages—such as Python, C#, Java, JavaScript, and so on—provide libraries to read, manipulate, and write JSON and GeoJSON.

这些格式和语言无关,大多数编程语言(像Python, C#, Java, JavaScript等)都提供了读写操作JSON和GeoJSON格式数据的库。

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, 我们在下文进一步了解。

JSON To Features

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

GeoJSON简介

GeoJSON是一种用于编码各种地理数据结构的格式。

2015年,互联网工程任务组(IETF)与原始规范作者组建了一个GeoJSON工作组,一起规范GeoJSON标准。在2016年8月,推出了最新的GeoJSON数据格式标准规范(RFC 7946),需要的同学可以在文末获取。

GeoJSON is a geospatial data interchange format based on JavaScript Object Notation(JSON). It defines several types of JSON objects and the manner in which they combined to represent data about geographic features, their properties, and their spatial extents.

GeoJSON是一种基于JSON的地理空间数据交换格式,它定义了几种类型JSON对象以及它们组合在一起的方法,以表示有关地理要素、属性和它们的空间范围的数据。

GeoJSON uses a geographic coordinate reference system, World Geodetic System 1984, and units of decimal degrees.

GeoJSON使用唯一地理坐标参考系统WGS1984和十进制度单位。

GeoJSON中的对象

一个GeoJSON对象可以是Geometry, Feature或者FeatureCollection,可以这样理解一个shp文件类似于一个FeatureCollection对象,一个FeatureCollection对象中可以包括若干个Feature对象,而每一个Feature对象又包含有一个Geometry对象(参见下图中标注的三个“type”)。看到这里,了解过ArcObjects的同学会惊讶的发现,这里的设计逻辑与ArcGIS底层设计惊人的类似,不过转念一想,ArcGIS作为GIS领域的巨头,其部分优秀设计作为行业规范也不足为奇,接下来我们详细看一下GeoJSON中部分重要的基本对象。

Point

LineString

Polygon

MultiPoint

MultiLineString

MultiPolygon

总结

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

麻辣GIS 此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
关注本站微信公众号,回复“资源下载”,获取验证码。在微信里搜索“麻辣GIS”或微信扫描右侧二维码即可关注本站微信公众号。

麻辣GIS-妙手
作者:
生命不息,折腾不止

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到QQ群中提问。

本站QQ群(一):291616564 加入QQ群

本站QQ群(二):166408035 加入QQ群

本站QQ群(三):627853279 加入QQ群

本站QQ群(四):436386604 加入QQ群

本站QQ群(五):606176554 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

发表评论