ドローン測量で使うKMLファイルの基礎と活用法

ドローン測量で使うKMLファイルの基礎と活用法の概念図

KMLとは

KML(Keyhole Markup Language)は、地理空間情報を記述するためのXMLベースのファイル形式です。もともとKeyhole社(後にGoogleが買収)が開発し、Google Earthの普及とともに世界中で広く使われるようになりました。2008年にはOGC(Open Geospatial Consortium)の国際標準規格として正式に採択されています。

KMLの最大の特徴は、緯度・経度・高度の3次元座標を用いて地物を表現できる点です。ドローン測量の分野では、飛行エリアの定義、ウェイポイントの設定、測量結果の可視化など、さまざまな場面でKMLファイルが活用されています。テキストエディタで直接編集できるため、プログラムによる自動生成や一括編集にも適しています。

KMLの座標系はWGS84(EPSG:4326)で固定されています。日本の測量で一般的な平面直角座標系やJGD2011の座標値を扱う場合は、事前に緯度経度への変換が必要です。

KMLの基本構造

KMLファイルはXML形式で記述され、いくつかの基本要素で構成されています。最上位には<kml>要素があり、その中に<Document>要素を配置します。Documentはファイル全体のコンテナとして機能し、名前やスタイル情報を保持します。

地物データの中核となるのが<Placemark>要素です。各Placemarkには名前(Name)と説明(Description)を付与でき、その中にジオメトリ要素を配置します。主なジオメトリ要素は以下の通りです。

Pointは単一の地点を表します。GCP(地上基準点)の位置やウェイポイントの座標を記述する際に使用します。座標は「経度,緯度,高度」の順で記述する点に注意が必要です。

LineStringは複数の座標を結んだ線分を表現します。ドローンの飛行経路やトラバース路線の可視化に適しています。

Polygonは閉じた多角形を定義します。測量エリアの境界やフライトエリアの範囲指定に用います。外周を<outerBoundaryIs>で定義し、必要に応じて<innerBoundaryIs>で穴を開けることも可能です。

KMZとKMLの違い

KMZファイルは、KMLファイルをZIP形式で圧縮したものです。拡張子が.kmzとなり、単なる圧縮だけでなく、関連するリソースファイルを一つのパッケージにまとめられるという利点があります。

KMZには、KML本体に加えて、カスタムアイコン画像、テクスチャ、オーバーレイ画像、3Dモデル(COLLADA形式)などを内包できます。たとえば、ドローンで撮影したオルソ画像をグラウンドオーバーレイとして地図上に重ね合わせる場合、KMZにまとめておけば画像ファイルのパスが壊れる心配がありません。

ファイルサイズの面では、KMZはテキストであるKMLを圧縮するため、通常50〜70%程度のサイズ削減が見込めます。多数のPlacemarkを含む大規模な測量データでは、この差が顕著になります。一方、テキストエディタで直接編集したい場合や、Gitでバージョン管理したい場合は、非圧縮のKMLの方が扱いやすいでしょう。

KMZファイルの中身を確認したい場合は、拡張子を.zipに変更して解凍するだけで内部のKMLファイルを取り出すことができます。

ドローンのフライトプランでの活用

KMLファイルはドローンのフライトプラン作成において重要な役割を果たします。多くのドローン制御アプリケーション(DJI Pilot、Litchi、QGroundControlなど)がKMLのインポートに対応しており、事前にデスクトップで計画した飛行経路をフィールドで即座に利用できます。

最も基本的な活用法は、Placemarkのポイントをウェイポイントとして設定することです。各ウェイポイントに対して、経度・緯度に加えて飛行高度をKMLの高度値として指定できます。これにより、起伏のある地形でも適切な対地高度を維持した撮影ルートを構築できます。

Polygonを使ったエリア指定も頻繁に行われます。測量対象エリアの境界をPolygonで定義し、フライトプランニングソフトウェアに読み込ませると、自動的にグリッド状またはダブルグリッドの飛行パスが生成されます。複雑な形状の敷地でも正確にエリアを指定できるため、不要な空域を飛行するリスクを低減できます。

また、LineStringを使って撮影路線を直接指定する方法も有効です。道路や河川沿いの線形構造物の測量では、自動生成のグリッドパスよりも効率的に対象をカバーできる場合があります。

KMLの高度モード

KMLでは<altitudeMode>要素を使って、高度値の解釈方法を指定できます。ドローン測量では高度の扱いが安全性と精度の両面で極めて重要であり、適切な高度モードの選択が不可欠です。

clampToGroundは高度値を無視し、地物を地表面に貼り付けるモードです。測量エリアの範囲表示や地上の目標点のマーキングなど、2次元的な情報を表示する場合に適しています。高度値が0でも正しく地表面に描画されるため、もっとも手軽に利用できるモードです。

relativeToGroundは地表面からの相対高度として高度値を解釈します。ドローンのフライトプランでは、このモードが最もよく使用されます。たとえば高度を50と設定すれば、地形の起伏にかかわらず地表から常に50mの高さを意味します。対地高度(AGL)での飛行計画に直接対応するため、直感的に扱えます。

absoluteは絶対高度として高度値を解釈するモードです。KMLの仕様上は海抜(平均海水面 / MSL)基準と定義されており、Google Earthでもこの解釈に従います。航空管制との調整が必要な場面や、異なる地点間で統一された高度基準を用いたい場合に使用します。ただし、地形の起伏が大きい現場では対地高度が大きく変動するため、地形追従飛行には不向きです。

注意: KML仕様ではabsoluteは海抜(MSL)基準ですが、ドローンのフライトプラン作成ソフトによってはKMLの高度値をWGS84楕円体高として扱う場合があります。日本付近では海抜と楕円体高の差(ジオイド高)が約30〜45mあるため、ソフトウェアごとの解釈の違いに注意が必要です。使用するソフトの仕様を必ず確認してください。
KMLエディターの画面 - KMLファイルの編集・プレビュー
当サイトのKMLエディターでは、KMLファイルの作成・編集・プレビューをブラウザ上で行えます。

関連ツール