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
標準。在
2016
年
8
月,推出了最新的
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資料格式標準規範
zhengzhou/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2727751/,如需轉載,請註明出處,否則將追究法律責任。