GeoJSON (.geojson)
IETF 標準Geographic JavaScript Object Notation (GeoJSON) は、地理データ構造をエンコードするための汎用的なWebネイティブ標準であり、現代のWebマッピング(Leaflet、Mapbox、OpenLayers)やGISアプリケーションで広く使用されています。
GEOJSON を KML に変換
無料のブラウザ内 GEOJSON から KML へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで GeoJSON ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで GeoJSON ファイルを識別します:
16進数シグネチャ (オフセット 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65ASCII表現: {\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 (現在) | KML | GPX | SHP |
|---|---|---|---|---|
| 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)。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- ネイティブ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形式です。
関連するGeoJSON変換ペア
GeoJSONベクターをGoogle KMLに変換することで、軽量のJSON座標配列がGoogle EarthおよびGoogle Maps向けに調整された構造化XMLドキュメントに翻訳されます。
Google KMLファイルをGeoJSONに変換することで、階層型のXML地理データを、モダンなWebマップ向けの軽量なベクターJavaScript Object Notationへと変換します。
GeoJSON ベクターデータを GPX に変換し、標準的な地理的 JSON オブジェクトを物理的なナビゲーションデバイス向けに最適化された XML ベースのフォーマットに変換します。