「GIS基礎」JSON資料格式在GIS領域的運用

qwer1030274531發表於2020-10-19

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章