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

本文探讨了JSON数据格式在GIS领域的应用,特别是在ArcGIS中的要素与JSON之间的转换。同时,深入介绍了GeoJSON数据格式及其与JSON的区别,列举了GeoJSON中的基本几何对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

ArcGIS中的使用

Features To JSON

JSON To Features

扩展:GeoJSON

GeoJSON中的对象

总结


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

ArcGIS中的使用

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

 

 

无论是JSON还是GeoJSON都是基于文本的轻量级的数据交换格式,用于ArcGIS和其他软件间共享GIS数据。这些格式和语言无关,大多数编程语言(像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标准。在20168月,推出了最新的GeoJSON数据格式标准规范(RFC 7946),需要的同学可以在文末 阅读原文 获取。

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

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数据格式标准规范

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值