初识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),链接如下:https://malagis.com/json-format-gis-usage.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值