Geoとは
Geoは、
JavaScript Object Notation()を用いて空間データをエンコードし、非空間属性を関連付けるための
ファイルフォーマットです。このフォーマットは、地理空間情報を扱うための標準的な形式として広く利用されています。
データの種類
Geoで扱える主なデータの種類には、以下のようなものがあります。
ポイント(Point):住所や座標などの位置情報を表します。
ライン(Line):道路や境界線などの線状の情報を表します。
ポリゴン(Polygon):国や地域などの面状の情報を表します。
これらのデータは、地図上に位置を示すために利用されます。
他のGISファイル形式との違い
Geoは、他のGISファイル形式とは異なり、
Open Geospatial Consortium(OGC)のような組織ではなく、世界各地の開発者たちによって開発・管理されています。このオープンな開発体制が、Geoの普及を後押ししています。
Topoとの関連
Topoは、Geoに影響を受けて開発された拡張フォーマットです。Topoは、トポロジー情報を記述することで、データ量を削減し、効率的なデータ処理を可能にします。
歴史
Geoフォーマットに関する議論は2007年3月に始まり、2008年6月に最初のフォーマット仕様が完成しました。
その後、2015年4月には
Internet Engineering Task Force(IETF)がGeographic ワーキンググループを設立し、2016年8月にはGeoがRFC 7946として正式にリリースされました。このRFCによって、Geoの仕様が正式に標準化されました。
例
ジオメトリ
Geoでは、ジオメトリ(幾何学的形状)を以下のように表現します。
点(Point):[x, y]または[x, y, z]の形式で表現されます。これは、[経度, 緯度]または[東距, 北距]として解釈され、オプションとして標高(z)を含むこともできます。座標は10進数で表現します。
例えば、ロンドン(北緯51.5074度、西経0.1278度)は、[-0.1278, 51.5074]と表現されます。
対応状況
Geoは、多くのGIS関連
ソフトウェアで広くサポートされています。以下にその例を挙げます。
GISソフトウェア:
OpenLayers、
Leaflet、
GeoServer、
Django 、
GDAL、CartoDB、
PostGIS、
Mapnik(
GDAL OGR変換ライブラリ経由)など。
API:
Bing Maps、
Yahoo!、
Google Mapsなど。
その他:
GitHubでは、Geoのレンダリングに対応しています。
Googleマップでは、ライブラリを使用するか、オブジェクトをインスタンス化することでGeoを利用できます。
Topo
Topoは、Geoの拡張であり、トポロジー(つながり)情報を記述します。これにより、データの冗長性を減らし、ファイルサイズを小さくすることができます。Topoは、特に複雑な地理情報を扱う場合に有用です。
Topoの例
(例は省略)
派生フォーマット
Geoをベースとして、転送効率の向上やストリーミング型処理の実現を目指した派生フォーマットも存在します。
Newline-delimited Geo:各Geoオブジェクトを改行で区切った形式。
FlatGeobuf:バイナリ形式で効率的なデータ転送を可能にする。
GeoArrow:Apache Arrowをベースにした、高速なデータ処理を目的とする。
*
GeoParquet:Apache Parquet形式で、大量の地理空間データを効率的に扱う。
まとめ
Geoは、地理空間データを扱うための重要なフォーマットであり、そのオープン性と多様な
ソフトウェアでのサポートにより、広く普及しています。Topoやその他の派生フォーマットの登場により、より効率的なデータ処理が可能になり、地理空間情報アプリケーションの開発を支えています。