現代のデジタル地図や地理情報システム(GIS)において、異なるプラットフォーム間でデータを正確にやり取りすることは極めて重要です。GML (Geography Markup Language) は、地理的な特徴を表現するために Open Geospatial Consortium (OGC) によって策定された XML ベースの文法です。単なるデータ形式にとどまらず、インターネット上での地理的トランザクションを可能にするオープンな交換フォーマットとして、世界的に利用されています。
GML の最大の特徴は、従来の点・線・面といった「ベクトルデータ」だけでなく、センサーデータやカバレッジ(連続的な空間領域)など、あらゆる形態の地理情報を統合できる柔軟性にあります。
Key Facts
- 開発元: Open Geospatial Consortium (OGC)
- ベース技術: XML (Extensible Markup Language)
- 国際標準: ISO 19136:2007 として標準化
- 主な用途: 地理空間データのモデリングおよび相互運用性の確保
- 表現可能なデータ: ポイント、ポリライン、ポリゴン、カバレッジ、センサーデータなど
GML の基本構造とモデル
GML は、特定のアプリケーション向けにスキーマを構築するための豊富な「プリミティブ(基本要素)」を提供しています。これにより、ユーザーは必要に応じて独自の地理空間言語を定義することが可能です。
主要な構成要素
- フィーチャ (Feature): 建物や河川など、現実世界の物理的な実体を指します。
- ジオメトリ (Geometry): フィーチャの位置や形状(点、線、面)を定義する数学的な表現です。
- 座標参照系 (CRS): 地球上のどこに位置するかを決定するための基準です。
- その他: 時間、トポロジー(位相関係)、測定単位、観測データなどが含まれます。
初期の GML は W3C の RDF (Resource Description Framework) に基づいていましたが、その後、既存の地理データベースとの親和性を高めるために XML スキーマへと移行しました。これにより、親オブジェクトのプロパティとして子要素を定義する構造などが効率的に実装されています。
プロファイルとアプリケーションスキーマ
GML は非常に多機能であるため、導入を簡素化するために「プロファイル」という論理的な制限セットが用意されています。プロファイルは GML のサブセットであり、特定の用途に合わせて機能を絞り込んだものです。
代表的なプロファイル
- ポイントプロファイル: 点データのみを扱うシンプルな構成。
- シンプルフィーチャプロファイル: 0次元から2次元までの線形ジオメトリをサポートし、WFS (Web Feature Service) などのトランザクションに適した構成。
- その他: RSS 用や GMLJP2 (JPEG 2000 内の GML) 用のプロファイルが存在します。
一方、「アプリケーションスキーマ」は、特定の業界やコミュニティ(例:観光、航空、地質学)が定義する独自の XML 語彙です。例えば、観光用スキーマであれば「博物館」や「展望台」といったオブジェクトタイプを定義し、それらの位置情報を GML の標準的なジオメトリで表現します。
公開されている主なアプリケーションスキーマの例
| スキーマ名 | 主な用途・分野 |
|---|---|
| CityGML | 3D都市モデルおよび地域モデル |
| AIXM | 航空情報交換(商業航空関連) |
| GeoSciML | 地球科学情報 |
| IndoorGML | 屋内空間情報 |
| SensorML | 計測機器および処理チェーンの記述 |
GML と KML の決定的な違い
Google Earth で普及した KML (Key Hole Markup Language) と GML は混同されやすいですが、その目的は根本的に異なります。GML があらゆるアプリケーション向けの「データ交換とモデリング」を目的としているのに対し、KML は主に「地理情報の可視化(プレゼンテーション)」に特化しています。
GML データを KML でレンダリングすることは可能ですが、その過程でメタデータや座標参照系、複雑な幾何学的整合性など、GML が持つ構造の 90% 以上が失われる可能性があります。逆に KML のアニメーションや詳細度(LOD)設定を GML に変換しても、同様に情報は失われます。つまり、GML は「中身(データ)」を、KML は「見せ方(表現)」を重視した言語であると言えます。
技術的な詳細:ジオメトリと座標
ジオメトリの表現
GML 1.0 および 2.0 では、主に Point (点)、LineString (線)、Polygon (面) の 3 つのベクトルモデルが採用されていました。バージョン 3.0 以降では、衛星データなどのラスタモデルを扱うための「カバレッジ」構造が追加され、表現力が大幅に向上しました。
座標の指定方法
GML では座標を表現するために複数の要素が使われます。初期の <gml:coordinates> は単なる文字列として扱われていたため、DOM (Document Object Model) による個別のアクセスが困難でした。そのため、GML 3.0 では <gml:pos> や <gml:posList> が導入され、プログラムからの操作性が改善されました。
座標参照系 (CRS) の重要性
KML などとは異なり、GML にはデフォルトの座標系が存在しません。そのため、srsName 属性を用いて、どの座標参照系(例:EPSG コード)を使用しているかを明示的に指定する必要があります。これにより、世界中の異なる基準を持つデータを正確に統合することが可能になります。
Frequently Asked Questions
GML と XML の関係は何ですか?
GML は XML をベースに構築された地理空間情報専用の文法(グラマー)です。XML の柔軟な構造を利用して、地理的な特徴や属性を定義しています。
フィーチャ (Feature) とジオメトリ (Geometry) はどう違いますか?
フィーチャは「建物」や「河川」といった現実世界の物理的な実体であり、ジオメトリはその実体が「どこに、どのような形で」存在するかを示す数学的な形状(点や線など)を指します。一つのフィーチャが複数のジオメトリを持つこともあります。
GML を使うメリットは何ですか?
ベンダーに依存しないオープンな標準規格であるため、異なるソフトウェア間でのデータ移行や共有が容易になります。また、ISO 標準に準拠しているため、国際的なプロジェクトでの相互運用性が保証されます。
KML で代用することはできないのでしょうか?
単純な可視化が目的であれば KML で十分ですが、厳密なデータ解析、複雑なトポロジーの保持、詳細なメタデータの管理が必要な場合は、構造的な情報を保持できる GML が不可欠です。
GML の最新バージョンでは何が変わりましたか?
バージョン 3.0 以降、ラスタデータを扱うカバレッジの導入や、ISO TC/211 の抽象仕様への準拠が進みました。これにより、より複雑なジオメトリの表現や、時間軸を含む動的なデータの扱いが可能になっています。
References
- Open Geospatial Consortium Inc. (2010-02-08), Technical Committee Policies and Procedures: MIME Media Types for GML (PDF)
- "OpenGIS Geography Markup Language (GML) Encoding Standard". Retrieved 2011-03-25.
- "Iso 19103:2015".
- "CityGML homepage". Archived from the original on 2013-02-01. Retrieved 2018-06-18.
- "Climate Science Modelling Language - CSML". Archived from the original on 2015-06-13. Retrieved 2018-06-18.
- "GPlates Geological Information Model : Resource Page".
- "News".
- "Index of /schemas". inspire.ec.europa.eu.
- "NetCDF in XML". Archived from the original on 2010-03-23. Retrieved 2007-04-10.
- "OS MasterMap – GML (Geography Mark-up Language) explained". Retrieved 2011-10-12.
{{}}: CS1 maint: deprecated archival service ()