GeoJSON (.geojson)

IETF 標準

Geographic JavaScript Object Notation (GeoJSON) は、地理データ構造をエンコードするための汎用的なWebネイティブ標準であり、現代のWebマッピング(Leaflet、Mapbox、OpenLayers)やGISアプリケーションで広く使用されています。

GEOJSON を KML に変換

無料のブラウザ内 GEOJSON から KML へのコンバーター。お使いのデバイスでファイルを即座に変換します。

調査とメタデータ

オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで GeoJSON ファイルを識別します:

ここにファイルを選択またはドロップ

100%プライベートなブラウザ内変換 - ファイルがデバイスから外部に出ることはありません

または貼り付け Ctrl+V
ネットワーク送信ゼロのプライバシー保証: 外部サーバーへのデータ送信は0バイトです。すべての処理はお使いのブラウザのサンドボックス内でローカルに実行されます。

バイトレベルのヘッダーシグネチャ (マジックバイト)

オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで GeoJSON ファイルを識別します:

16進数シグネチャ (オフセット 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

技術仕様

コンテナアーキテクチャJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
圧縮Uncompressed text (readily compressed over HTTP via Gzip or Brotli)
バイトエンディアンUTF-8 text stream
色空間N/A (Geographic Data)
チャンネルと構造Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
最大寸法World Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
透過性None
ストリーミングとプログレッシブLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

技術比較マトリックス: GeoJSON 対 競合製品

技術属性GeoJSON (現在)KMLGPXSHP
Webマッピングの採用100%普遍的なWeb GISのデフォルトGoogle EarthのデフォルトGPSデバイスおよびフィットネスのデフォルトデスクトップGISのレガシー標準
座標の順序[経度, 緯度] (X, Y)経度, 緯度, 高度緯度, 経度X, Y座標
構文スタイルクリーンなJSONキーと値冗長なXMLタグ (<kml>)冗長なXMLタグ (<gpx>)マルチファイルバイナリ (.shp, .shx, .dbf)
プロパティスキーマ任意のJSONプロパティオブジェクトExtendedDataスキーマタグ固定GPXスキーマタグdBase IV (.dbf) 固定列

一般的な破損モードと16進数リカバリガイド

マップ上のポイントが実際の場所ではなく、南極近くの海上に表示される。

根本原因: 座標配列内で緯度と経度の値が誤って入れ替わっていました。

復旧: File2File GeoJSONコンバーターを使用して座標位置 [lon, lat] を入れ替えます。

セキュリティ分析とパーサー攻撃ベクトル

GeoJSONプロパティには任意のユーザー入力が含まれる可能性があり、XSSを防ぐためにマップポップアップにレンダリングする前にサニタイズする必要があります。

既知の攻撃ベクター

  • マップツールチップでレンダリングされるGeoJSONフィーチャプロパティ内のエスケープされていないHTMLを介したクロスサイトスクリプティング(XSS)。
  • 深くネストされたGeometryCollectionまたは数百万の頂点を持つポリゴンを通じたサービス拒否(DoS)。
  • リモートGeoJSONフィーチャの読み込みを通じたサーバーサイドリクエストフォージェリ(SSRF)。

防御的ベストプラクティス:

歴史的背景とマイルストーン

2016IETFがGeoJSONフォーマットをRFC 7946として正式に標準化し、WGS 84座標参照系を義務付けました。
2014GitHubがすべての.geojsonファイルに対するネイティブのインタラクティブなビジュアルマップ描画機能を導入しました。
2008ハワード・バトラー(Howard Butler)、ショーン・ギリス(Sean Gillies)、およびオープンソースGISコミュニティが初期のGeoJSON 1.0仕様を公開しました。

主な利点とメリット

  • ネイティブWeb標準:ブラウザのマッピングライブラリ(Mapbox GL JS、Leaflet)内のJavaScriptオブジェクトに直接マップされます。
  • 人間が読めるJSON構造により、プログラムによる作成、フィルタリング、デバッグを簡単に行うことができます。
  • 任意のプロパティスキーマ:人口、名前、速度、収益などのカスタムメタデータを幾何学的形状に直接アタッチできます。

技術的な制限とデメリット

  • テキストの冗長性:浮動小数点座標を繰り返しのASCII数字として保存するため、バイナリのShapefileやFlatGeobufよりもファイルサイズが大きくなります。
  • RFC 7946では[経度, 緯度]の順序が厳密に義務付けられており、「緯度/経度」に慣れている開発者をしばしば混乱させます。
  • 数百万の頂点を持つ大きなポリゴンは、WebブラウザのDOM描画の速度低下を引き起こす可能性があります。

興味深い技術トリビア

  • 公式のGeoJSON標準では、座標の順序を[経度, 緯度](X、Yのデカルト順)としており、これは人間が話す順序(「緯度, 経度」)とは正反対です。
  • GitHubに.geojsonファイルをコミットすると、GitHubは自動的にそれをインタラクティブでクリック可能なマップとしてレンダリングします。
  • RFC 7946では、ポリゴンの境界リングが「右手の法則」に従う必要があり、外側のリングは反時計回りに巻く必要があると義務付けられています。

よくある技術的な質問

GeoJSONの座標が[緯度, 経度]ではなく[経度, 緯度]の順になっているのはなぜですか?

数学およびコンピュータグラフィックスでは、座標は常に(X, Y)として指定されるためです。経度は水平方向のX軸を表し、緯度は垂直方向のY軸を表します。

KMLやShapefileをGeoJSONに変換するにはどうすればよいですか?

ブラウザから直接File2File.appを使用して、Google EarthのKMLファイルやEsri Shapefileを数秒でクリーンなWeb用GeoJSONに変換できます。

GeoJSONとShapefileの違いは何ですか?

Shapefileは1990年代の古い複数ファイルバイナリ形式(.shp, .shx, .dbf)です。GeoJSONは、クリーンなJSONで記述された最新の単一ファイルオープンWeb形式です。