建物ポリゴンの代表点のGeohash値(11桁)による建物へのIDの付番
建物ポリゴンの代表点(重心もしくはポリゴン内保証点)の経緯度座標を11桁(10-15cm)精度のGeohash値に変換し、建物のIDとして付番することでID自体のデータ量を11文字に抑えつつ、建物毎にユニークなIDを定義し、さらにIDから建物の位置を前方一致検索で逆引き可能にする。
課題
- 建物ポリゴンにIDを付与する際、ポリゴンの頂点座標情報をそのまま符号化しようとすると情報量が多くなるため、ポイントに変換することが望ましいが、ポリゴンの重心(Centroid)をそのまま用いた場合、ポリゴンが凹形状の場合に建物ポリゴン外に位置することがある。
- 例として、PLATEAUの建築物モデル(LOD0)では取得基準が「射影の短辺の実長 1m 以上」となっていて、最小で 1m の幅・奥行きの建物ポリゴンが存在する可能性があるため、ポイントの精度としては10cm程度が望ましい。
一般に、経緯度座標系で10cm程度の精度に必要な小数点以下桁数は6桁とされていて、例えば十進経緯度が139.750435,35.670862
の場合、固定長として扱って記号(.
,,
)を除くと、17文字(13975043535670862
)が必要となるが、ID自体のデータ量を抑えるためには、同じレベルの精度を保ちつつ、必要な文字数を17文字から可能な限り少なくする必要がある。
課題解決のための手法
- IDを付与するポイントとして、基本的には建物ポリゴンの重心(Centroid)を利用しつつ、ポリゴンが凹形状で重心が建物ポリゴン外に位置する場合のみ、ポリゴン内保証点(Point On Surface)を利用する。
ポリゴン内保証点の算出アルゴリズムは、利用する幾何計算ライブラリによって異なると想定され、全ての建物ポリゴンに対して適用する場合、安定した座標値が得られないと考えられるが、凹形状で重心が建物ポリゴン外にある場合のみのフォールバックとして利用することで、全体として安定した座標値となることが期待される。 - 経緯度座標値の符号化については、Google社が開発の Open Location Code (Plus Codes) や、Microsoft社が開発の QuadKey 、Ubuntuを提供するCanonical社CTOのGustavo Niemeyerが開発した Geohash などがあり、いずれも文字列の前方一致検索での位置特定が可能であるが、10cm程度の精度を実現する場合、Open Location Codeでは13桁、QuadKeyでは30-31桁程度必要となるため、本提案では、11桁で10-15cm精度の位置特定が可能なGeohashを採用する。
上記手法の利用シーン
- 安定した建物ポリゴンの代表点を利用することで、建物ID値のみから建物ポリゴン形状の経年変化(新築・増築・解体など)を検出することができると考えられる。
- PLATEAUの建築物(
Building
)モデルの拡張属性であるBuildingIDAttribute.buildingID
で、現状[市区町村コード]-[接頭辞]-[オブジェクト連番]
となっているところ、[オブジェクト連番]
箇所を本提案での建物IDに置き換えることで、建物ID値箇所のみからの建物の位置を逆引きやデータ品質チェック、経年変化によらない安定した建物IDの付与が可能と考えられる。