CityGML作成時によく発生する幾何形状エラーの原因と対処法

一般社団法人社会基盤情報流通推進協議会
本間 恒二
1.はじめに
国土交通省が主導する「Project PLATEAU」では、全国の自治体による3D都市モデルの整備とオープンデータ化が進められており、これらのデータは都市の可視化やシミュレーションなど、さまざまな分野で活用されています。
PLATEAUで採用されている3D都市モデルは、国際標準であるCityGMLに準拠した「3D都市モデル標準製品仕様書」に基づいて作成する必要があり、幾何形状の定義にも厳格なルールが定められています。
そのため、既存の3DモデルをもとにCityGMLを作成しようとすると、仕様との不整合により、さまざまな幾何形状エラーが発生しやすくなります。
本記事では、CityGMLを作成しようとしている方に向けて、それらのエラーについて事例を交えながらご紹介します。
2.CityGML作成時によく発生する幾何形状のエラー事例
ここからは、CityGML作成時に見られる幾何形状エラー事例の一部をご紹介します。
これらはあくまで一例であり、他にも様々なケースや原因、対処方法などがあるかと思いますが、問題を避けるヒントとしてご参考にしていただければ幸いです。
エラー事例-1『頂点の密集』
●事例:
円柱形のモデル(例えば電柱や建築物の柱など)を作成したところ、隣接する頂点同士の距離が0.01m(1cm)未満になり、連続する頂点の重複エラーが発生した。

図1:頂点が密集している事例
●原因:
フットプリントを『円』で作成し、それを押し出して円柱形の3Dモデルを作成した。その結果、高精度な近似円が生成され、円周上に多数の頂点が配置されることとなった。このため、隣接する頂点同士の距離が1cm未満(例:4mm)となり、エラーの原因となった。
●対処方法:
フットプリントの形状に『円』は使わず、『多角形』で作成して、頂点間の距離を1cm以上確保する。
エラー事例-2『立体同士の交差』
●事例:
ビルのモデルを作成する際、屋上の出入り口のような凸形状を再現するために、ビル本体とは別に凸部分の立体を作成して重ね合わせたところ、ビル本体と凸部分の2つの立体が空間的に重なり、立体同士の交差エラーが発生した。

図2:立体同士が交差している事例
●原因:
ビルの外観を再現することだけに注力した結果、ビル本体と凸部分の立体を重ねて配置した。そのため、2つの独立した立体同士が重なった状態のままとなり、立体同士の交差エラーとなった。
●対処方法:
・ビル本体と凸部分の立体をブール演算(和集合)などの機能で1つの立体として合成する。
・凸部分を別立体として作成せず、ビル本体の立体の一部を押し出して作成する。

図3:2つの立体を1つの立体で表現した例
エラー事例-3『自己接触』
●事例:
段差のある建物モデルを作成した際、段差部分で面が重なり、自己接触エラーが発生した。

図4:面同士が接触している事例
●原因:
段差部分の作成時に、高さの異なる部分をそれぞれ個別に押し出したため、隣接箇所に壁面が二重に生成され、結果として自己接触エラーとなった。

図5:高さの異なる部分を個別に押し出した例
●対処方法:
同じ高さまでの面を一括選択して、押し出す。

図6:同じ高さまで一括で押し出した例
3.おわりに
今回の記事では、CityGML作成時によく発生する幾何形状エラー事例をご紹介しました。
ちょっとした注意や工夫で、こうしたエラーは大きく減らすことができます。
もし、CityGMLの変換や品質チェックでお困りの際は、AIGIDが提供する「CityGML変換サービス」(https://www.plateau-citygml-convert.jp/)も是非ご活用ください。
皆さまのCityGML作成の取り組みに、少しでもお役立ていただければ幸いです。
■本件お問い合わせ先
(一社)社会基盤情報流通推進協議会(AIGID)CityGML変換サービス担当:本間
E-mail:kouji.honma@aigid.jp
(2025年6月 メールマガジン掲載)