GeoJSON (.geojson)

IETF 標準

GeoJSON 是一個用於編碼地理資料結構的開放格式。它廣泛應用於網頁地圖中,並受到許多 GIS 應用程式的支援,儘管支援程度與行為各有不同。

將 GEOJSON 轉換為 KML

免費的瀏覽器端 GEOJSON 轉 KML 轉換器。在您的裝置上即時轉換檔案。

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 GeoJSON 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 GeoJSON 檔案:

十六進位簽章(偏移量 0):

7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65

ASCII 表示法: {\n "type": "Feature

標準化: IETF RFC 7946

技術規格

容器架構符合 RFC 7946 的 JSON 文件,代表地理特徵(Feature)、特徵集合(FeatureCollection)與幾何圖形(Geometry)
壓縮未壓縮文字(可透過 Gzip 或 Brotli 在 HTTP 傳輸時輕鬆壓縮)
位元組序UTF-8 文字串流
色彩空間不適用(地理資料)
色版與結構點(Point)、多點(MultiPoint)、線(LineString)、多線(MultiLineString)、多邊形(Polygon)、多多邊形(MultiPolygon)、幾何圖形集合(GeometryCollection)與自訂屬性
最大尺寸世界大地測量系統 1984(WGS 84)座標空間:經度(-180 至 +180)、緯度(-90 至 +90)
透明度無
串流與漸進式以行分隔的 GeoJSON(GeoJSONL / GeoJSONSeq)可支援數百萬個特徵的連續串流

技術比較矩陣:GeoJSON 對比競爭格式

技術屬性GeoJSON (目前)KMLGPXSHP
網路地圖採用率廣泛應用於網路地圖;應用程式支援情況各有不同Google Earth 預設值GPS 裝置與健身預設值桌面 GIS 舊版標準
座標順序[經度, 緯度] (X, Y)經度、緯度、高度緯度、經度X、Y 座標
語法風格簡潔的 JSON 鍵值對冗長的 XML 標籤 (<kml>)冗長的 XML 標籤 (<gpx>)多檔案二進位 (.shp、.shx、.dbf)
屬性結構描述任意 JSON 屬性物件ExtendedData 結構描述標籤固定的 GPX 結構描述標籤dBase IV (.dbf) 固定欄位

常見損壞模式與十六進位修復指南

地圖上的點出現在南極洲附近的海洋中,而非其真實位置。

根本原因: 座標陣列中的緯度和經度數值被意外互換了。

修復: 使用 File2File.app GeoJSON 轉換器互換座標位置 [lon, lat]。

安全性分析與解析器攻擊向量

GeoJSON 屬性可以包含任意的使用者輸入,在算繪至地圖快顯視窗之前必須進行清理,以防止 XSS 攻擊。

已知攻擊向量

  • 透過地圖提示框中所算繪之 GeoJSON 圖徵屬性內的未跳脫 HTML 進行跨網站指令碼 (XSS) 攻擊。
  • 透過深度巢狀的 GeometryCollection 或百萬頂點多邊形進行阻斷服務攻擊。
  • 透過遠端 GeoJSON 圖徵載入發動伺服器端請求偽造(SSRF)。

防禦最佳實務: 在插入地圖彈出視窗之前,請使用 DOMPurify 清理所有屬性文字字串。

歷史起源與里程碑

2016IETF 正式將 GeoJSON 格式標準化為 RFC 7946,強制規定使用 WGS 84 座標參考系統。
2014GitHub 為儲存庫中支援的 GeoJSON 檔案新增地圖呈現功能;部分檔案無法呈現,包括超過文件所述大小限制的檔案。
2008霍華德·巴特勒、肖恩·吉利斯與開源 GIS 社群發布 GeoJSON 1.0 初始規格。

主要優勢與優點

  • 原生網頁標準:在瀏覽器地圖函式庫(Mapbox GL JS、Leaflet)中直接對應到 JavaScript 物件。
  • 易於閱讀的 JSON 結構,可輕鬆進行程式化建立、篩選與偵錯。
  • 任意屬性結構描述:將任何自訂中繼資料(人口、名稱、速度、營收)直接附加到幾何形狀。

技術限制與缺點

  • 文字冗長:將浮點數座標儲存為重複的 ASCII 數字,導致檔案大小大於二進位 Shapefile 或 FlatGeobuf。
  • RFC 7946 嚴格規定 [經度, 緯度] 的順序,這常讓習慣「緯度/經度」的開發者感到困惑。
  • 包含數百萬個頂點的大型多邊形可能會導致網頁瀏覽器 DOM 算繪變慢。

有趣的技術冷知識

  • 官方 GeoJSON 標準規定座標順序為 [經度, 緯度](X、Y 笛卡兒座標順序),恰好與人們口語表達的順序(「緯度、經度」)相反。
  • GitHub 可以將支援的 GeoJSON 檔案以地圖形式算繪在儲存庫中。算繪有其限制,包含檔案大小與座標參考系統。
  • RFC 7946 規定多邊形邊界環必須遵循「右手定則」:外環必須以逆時針方向繞行。

常見技術問題

為什麼我的 GeoJSON 座標順序是 [經度, 緯度],而不是 [緯度, 經度]?

座標順序取決於格式。RFC 7946 GeoJSON 位置使用經度在前、緯度在後;其他格式可能會定義不同的軸順序。

如何將 KML 或 Shapefile 轉換為 GeoJSON?

您可以直接在瀏覽器中使用 File2File.app,在幾秒鐘內將 Google Earth KML 檔案或 Esri Shapefiles 轉換為乾淨、適合網路使用的 GeoJSON。

GeoJSON 與 Shapefile 有什麼差異?

Shapefiles 仍廣泛用於資料交換,也受到 GIS 軟體支援;不過,其多檔案結構與屬性限制,可能使 GeoJSON 或地理資料庫更適合某些工作流程。