LRTKレフィクシア株式会社

GeoJSONの穴あきポリゴンを扱う4つの確認

GeoJSONで土地、建物外形、管理範囲、除外区域などを表すとき、外周だけでなく内側に空白部分を持つ穴あきポリゴンを扱う場面があります。たとえば、対象範囲の中に別管理の区画がある場合、敷地内の除外範囲を抜きたい場合、面積集計から池や建物などの部分を除きたい場合です。見た目では単純な白抜きに見えても、GeoJSONのデータとしては外周リングと内側リングの関係を正しく表す必要があります。穴の扱いを誤ると、表示だけでなく、面積、包含判定、検索、集計、引き渡し時の確認にも影響します。この記事では、geojson 使い方を調べている実務担当者に向けて、穴あきポリゴンを扱う前に確認したい点を4つに整理して解説します。

穴あきポリゴンの基本構造を確認する

GeoJSONで穴あきポリゴンを扱うとき、最初に確認したいのは、見た目ではなくデータ構造です。GeoJSONのPolygonは、座標列をひと続きに並べたものではなく、複数のリングを配列として持つ形で表現します。Polygonでは、最初のリングが外周を表し、2つ目以降のリングが内側の穴を表します。つまり、同じPolygonの中に、対象範囲を示す外周と、そこから除外する内側の範囲を持たせる考え方です。

実務では、地図上で外側の境界線と内側の除外範囲が見えていれば、穴あきポリゴンとして正しくできているように感じることがあります。しかし、見た目だけでは判断できません。外周として入れるべき座標列が2つ目以降に入っていたり、穴として扱うべき座標列が別のPolygonとして分離されていたりすると、表示環境や解析処理によって意図と異なる結果になることがあります。ある環境では穴のように見えても、別の環境では塗りつぶされたり、独立した小さな面として扱われたりする場合があります。

穴あきポリゴンの基本は、1つの面の中に内側の空白部分があるという関係をデータで示すことです。外周と穴が同じ管理対象に属し、内側部分を対象範囲から差し引きたいのであれば、1つのPolygonの中で外周リングと内側リングとしてまとめる方法が適しています。一方、離れた複数の土地や、外周同士が接していない複数の面をまとめて扱う場合は、穴あきポリゴンではなく、MultiPolygonなど複数の面を持つ構造を検討します。穴と複数面は地図上で似て見えることがありますが、データ上の意味は異なります。

たとえば、大きな管理区域の中に除外区域がある場合、その除外区域は穴として表現できます。外周の内側に存在し、対象範囲から差し引きたいからです。これに対して、道路を挟んで離れた2つの管理区域を同じデータとして扱いたい場合は、穴ではありません。2つの独立した面です。ここを混同すると、面積や包含判定の結果が不自然になる可能性があります。

また、穴は外周の内側に入っている必要があります。内側リングの一部が外周の外にはみ出している場合、データとしての整合性に問題があります。地図上ではわずかなズレに見えても、面の判定では大きな問題になることがあります。特に、別々の測量成果や異なる作成条件のデータを重ねた場合、穴にしたい範囲が外周から少しはみ出してしまうことがあります。この状態のままGeoJSON化すると、表示や解析で不具合が起きやすくなります。

内側リング同士の関係も確認が必要です。複数の穴がある場合、それぞれが外周の内側に入り、互いに不自然に交差していないかを確認します。穴同士が重なっていると、どの部分を除外するのかが分かりにくくなります。実務では、除外範囲が複数あるほど管理が複雑になります。単に座標列を追加するのではなく、どのリングがどの意味を持つのかを属性や作成ルールで整理しておくと、後工程で確認しやすくなります。

PolygonとMultiPolygonの使い分けも重要です。穴あきポリゴンは、1つの外周に対して内側の穴を持つ構造です。MultiPolygonは、複数のPolygonをまとめて1つの地物として扱う構造です。1つの地物に複数の面があり、それぞれの面が穴を持つこともあります。この場合、MultiPolygonの中に複数のPolygonがあり、それぞれのPolygonの中で外周リングと内側リングを持つ形になります。構造が一段深くなるため、座標配列の階層を取り違えないことが大切です。

GeoJSONを手作業で編集する場合、配列の階層ミスが起こりやすくなります。Polygonのつもりで作ったのにMultiPolygon相当の階層になっていたり、逆にMultiPolygonとして扱うべきデータをPolygonの階層に押し込んでいたりすると、読み込み時にエラーになったり、意図しない図形として扱われたりします。実務では、座標値そのものだけでなく、角括弧の数や入れ子構造も確認対象に含める必要があります。

穴あきポリゴンを扱う前には、対象の図形が本当に穴として表すべきものなのかを整理します。除外区域なのか、別の独立面なのか、重なりを示したいのか、単に表示上だけ白く見せたいのかで、適切なデータ構造は変わります。表示だけを目的にすると、後から集計や引き渡しに使うときに問題が出ることがあります。GeoJSONは表示用の図形データとしても使えますが、同時に位置情報と属性を受け渡す形式でもあります。そのため、穴の意味をデータ構造として正しく持たせることが大切です。

外周リングと内側リングの閉じ方を確認する

穴あきポリゴンで次に確認したいのは、各リングが正しく閉じているかどうかです。Polygonを構成する外周リングと内側リングは、いずれも始点と終点が同じ座標で閉じた形になっている必要があります。地図上では線がつながって見えても、データ上で最初の座標と最後の座標が一致していなければ、正しいリングとして扱えない場合があります。

実務では、作図時に閉じた面として作ったつもりでも、変換や編集の過程で最後の座標が抜けることがあります。特に、線データから面データを作る場合や、複数のファイル形式を経由する場合、リングの閉じ方が崩れることがあります。穴あきポリゴンでは外周だけでなく、内側リングも同じように閉じていなければなりません。外周が正しくても穴のリングが閉じていないと、穴として認識されなかったり、読み込み時にエラーになったりする可能性があります。

リングの閉じ方を確認するときは、始点と終点が同じかだけでなく、座標の順序にも注意します。GeoJSONでは、外周リングと内側リングの向きについて、右手系の考え方が示されています。一般的には外周を反時計回り、穴を時計回りに整理する形です。ただし、既存データや読み込み側によっては向きが違っていても表示できることがあります。そのため、表示できたから十分と判断するのではなく、作成ルールとしてリングの向きを統一しておくことが大切です。

座標順が混乱すると、環境によっては穴が穴として抜けずに塗られたり、外周と内側の関係が期待どおりに扱われなかったりすることがあります。表示環境によって自動補正される場合もありますが、すべての処理で同じように補正されるとは限りません。受け渡しや長期保管を考えるなら、元データの段階でリングの向きを整え、変換後にも確認するほうが安全です。

また、リングには最低限の点数が必要です。面を構成するには、単なる2点の線では足りません。閉じた形として成立するだけの座標点が必要です。見た目が三角形であっても、始点を最後に繰り返すため、座標列としては始点、2点目、3点目、始点という形になります。穴についても同じです。非常に小さな穴や細長い穴を作る場合、点数が少なすぎたり、ほぼ同じ座標が連続したりすると、図形として不安定になることがあります。

自己交差も重要な確認点です。外周リングや内側リングが途中で交差していると、どこが内側でどこが外側なのか判断しづらくなります。たとえば、砂時計のようにくびれて交差した形や、折り返しで線が重なった形は、面としての解釈が不安定です。穴あきポリゴンでは、外周リングが自己交差していないか、内側リングも自己交差していないかを確認します。面が複雑な場合は、目視だけでなく図形の妥当性を確認する工程を入れると安心です。

重複点や極端に近い点も注意が必要です。現場で取得した座標や編集を繰り返した図形では、ほぼ同じ位置に複数の点が入っていることがあります。表示上は問題なく見えても、面積計算や変換処理でエラーの原因になることがあります。穴の境界に細かすぎる点が大量に入っている場合、データ量が増え、表示や処理が重くなることもあります。精度を保つことは大切ですが、用途に対して必要以上に細かい点がないかも確認します。

外周と穴が接している場合も慎重に扱います。内側リングが外周に接している、またはほぼ接している状態では、解析用途で不安定になりやすいことがあります。意図としては切り欠きのような形を表したいのか、完全に内側にある穴を表したいのかを整理する必要があります。切り欠きであれば、外周リングの形そのものとして表現するほうが自然な場合があります。穴として表すのは、外周の内側に囲まれた除外範囲である場合が基本です。

座標の桁数も確認しておきたい点です。GeoJSONは座標値を数値として持つため、桁数が多ければ常に実務上の精度が高いというわけではありません。元データの精度や用途に対して過剰な小数桁があると、差分管理や目視確認が難しくなります。一方で、丸めすぎると外周と穴の位置関係が崩れることがあります。特に、穴が外周に近い場合、座標の丸めによって穴が外周に接したり、外にはみ出したりする可能性があります。丸め処理を行う場合は、図形の妥当性確認とセットで実施します。

緯度経度の順序も基本的な確認事項です。一般的なGeoJSONでは、座標を経度、緯度の順で記述します。普段の業務では緯度、経度の順で表記する資料に慣れている場合があるため、手入力や表計算から変換するときに順序を逆にしてしまうことがあります。外周も穴も同じ間違いをしていれば、まったく違う場所に表示されることがあります。一部のリングだけ順序が逆になっていると、図形全体が壊れたように見えることもあります。

穴あきポリゴンの確認では、外周だけを見て安心しないことが重要です。外周、内側リング、各リングの閉じ方、座標順、自己交差、重複点、桁数、経度と緯度の順序をまとめて見ることで、後工程でのトラブルを減らせます。特に引き渡し用のGeoJSONでは、作成した環境で表示できるかだけでは不十分です。受け取る側の環境や解析処理でも無理なく扱えるように、基本構造を整えることが求められます。

面積計算と表示結果のズレを確認する

穴あきポリゴンを扱う実務で起こりやすいのが、表示上は正しく見えるのに、面積や集計結果が思った値にならないという問題です。穴あきポリゴンの面積は、外周の面積から内側リングの面積を差し引いて考えるのが基本です。ところが、データ構造や座標系、計算方法によっては、穴が差し引かれなかったり、別の面として扱われたりすることがあります。

まず確認したいのは、穴が本当にPolygonの内側リングとして入っているかどうかです。見た目では白く抜けていても、単に背景色で隠しているだけの場合や、上に別の図形を重ねているだけの場合があります。このようなデータは、表示用としては成立しても、面積計算では外周全体がそのまま計算される可能性があります。GeoJSONとして受け渡すなら、見た目の白抜きではなく、内側リングとして座標配列に含まれているかを確認します。

次に、計算対象の単位を確認します。GeoJSONで扱う座標は、経度や緯度のような角度値で表されることが多く、単純に平面座標のように計算すると、実際の面積とずれることがあります。特に広い範囲を扱う場合や、高い精度の面積が必要な場合は、座標値をそのまま平面の距離として扱うのではなく、目的に合った座標変換や面積計算方法を検討する必要があります。穴あきポリゴンでは外周と穴の両方にこの影響が出るため、差し引き後の面積にも注意が必要です。

小さな管理範囲であっても、面積を正式な数量として使う場合には、どの座標系、どの計算方法、どの丸めルールで算出した値なのかを記録しておくと安心です。地図上の見た目と数量表の値が少し違うだけでも、関係者間で確認が必要になることがあります。特に、施工範囲、維持管理範囲、除外範囲、提出用図面と連動する場合は、面積値の根拠を説明できる状態にしておくことが重要です。

表示結果のズレにも注意します。穴あきポリゴンは、表示環境によって塗りつぶしの解釈が異なることがあります。多くの場合はGeoJSONの構造に沿って描画されますが、リングの向きや図形の妥当性に問題があると、穴が塗られたり、境界線が不自然に伸びたり、外周全体が表示されなかったりすることがあります。ひとつの表示環境だけで確認するのではなく、作成環境と確認環境を分けて見ると、問題に気づきやすくなります。

ただし、確認環境を増やせば必ず正しいというわけではありません。環境ごとに自動補正や描画の癖があるため、ある環境で正しく見えることが、データ自体の正しさを保証するわけではありません。実務では、表示確認とデータ構造確認を分けて考える必要があります。表示確認では、外周が意図した場所にあるか、穴が抜けているか、境界線が不自然に交差していないかを見ます。データ構造確認では、座標配列の階層、リングの順序、閉じ方、穴の位置関係を見ます。

穴の境界が外周に近い場合、拡大縮小の表示で見え方が変わることがあります。縮小表示では穴がつぶれて見えたり、外周と一体化して見えたりすることがあります。逆に拡大すると、細い隙間やわずかなズレが見えることもあります。確認時には、全体表示だけでなく、穴の周辺を拡大して確認します。小さな穴が多数ある場合は、代表箇所だけでなく、外周付近、隣接する穴同士、極端に細い部分など、問題が起きやすい箇所を選んで確認すると効率的です。

属性情報との関係も見落とせません。GeoJSONでは、図形と属性を組み合わせて地物を表します。穴あきポリゴンの場合、外周と穴に別々の属性を持たせたいと考えることがあります。しかし、Polygonの内側リングは、そのPolygonの一部として除外範囲を示すものであり、通常は穴そのものが独立したpropertiesを持つわけではありません。穴に名称、管理者、用途、面積などを持たせたい場合は、別の地物として除外区域を表すデータを用意するなど、管理方法を分けることを検討します。

たとえば、ある管理区域の中に対象外区域があり、その対象外区域にも管理番号や理由を持たせたい場合、穴あきポリゴンだけでは情報が不足することがあります。外周Polygonでは対象範囲から除外して面積を計算し、別レイヤーや別地物として対象外区域の情報を管理する方法が考えられます。これにより、表示上は穴として抜きながら、除外区域の属性も確認できます。データの使い道によって、1つのGeoJSONにまとめるのか、役割ごとに分けるのかを判断することが重要です。

境界線の扱いも整理しておく必要があります。面としては穴が抜けていても、境界線を表示すると外周と内側リングの線がどちらも見えます。利用者によっては、内側リングの境界線を対象範囲の境界と誤解することがあります。図面や画面で説明する場合は、外周境界と除外境界の意味を明確にしておくと、現場や関係者の認識違いを防ぎやすくなります。特に、作業範囲の指示や立入範囲の確認に使う場合は、穴の内側は対象外であることを明示する必要があります。

面積計算では、穴の面積を差し引いた値だけでなく、外周面積、穴面積、差し引き後面積を分けて確認すると、原因を追いやすくなります。最終的な面積だけを見ていると、外周の誤りなのか、穴の誤りなのか、計算方法の違いなのか判断しにくくなります。特に、複数の穴を持つポリゴンでは、穴ごとの面積を確認しておくと、異常値に気づきやすくなります。極端に大きな穴や、ほぼゼロに近い穴があれば、座標や構造に問題がある可能性があります。

また、穴あきポリゴンを別形式に変換する場合にも注意が必要です。変換先の形式や処理によっては、内側リングの扱いが変わることがあります。穴が保持されるか、複数の面に分解されるか、境界線だけになるかは、変換方法によって異なります。GeoJSONを中間データとして使う場合は、最終的な利用形式まで含めて、穴が正しく残っているかを確認します。変換前と変換後で面積を比較すると、穴の欠落や重複に気づきやすくなります。

実務では、表示、面積、属性、変換の4つを別々に確認する意識が大切です。表示が正しいから面積も正しいとは限りません。面積が合っているから属性管理も十分とは限りません。GeoJSONの穴あきポリゴンは、見た目とデータ構造の両方を持つため、確認も複数の視点から行う必要があります。このひと手間を入れることで、後から図形を作り直したり、関係者に説明し直したりする負担を減らせます。

受け渡し前に用途別の確認手順を整える

穴あきポリゴンを含むGeoJSONを実務で使う場合、作成した時点で終わりではありません。関係者に渡す、別のシステムで読み込む、現場確認に使う、面積集計に使うなど、用途に応じて確認手順を整える必要があります。特に、穴あきポリゴンは単純な外周だけのPolygonよりも誤解が起きやすいため、受け渡し前のチェックが重要になります。

まず、用途を明確にします。表示確認用なのか、面積集計用なのか、境界確認用なのか、現場での作業範囲共有用なのかによって、優先して見るべき点が変わります。表示確認用であれば、穴が視覚的に抜けているか、地図上の位置が自然か、塗り分けが誤解を招かないかが重要です。面積集計用であれば、内側リングが正しく差し引かれるか、計算方法が用途に合っているかを確認します。境界確認用であれば、外周と穴の境界がどのような意味を持つかを説明できるようにします。

次に、作成ルールを残します。どの範囲を外周としたのか、どの範囲を穴としたのか、座標はどの順序で記録したのか、丸め処理を行ったのか、変換を行ったのかを簡単に記録しておくと、後で確認しやすくなります。GeoJSONのファイルだけを見ると、内側リングが何を意味するのか分からないことがあります。属性名やファイル名、補足資料で、穴は対象外区域を表すなどの説明を付けておくと、受け取る側が迷いにくくなります。

属性設計も確認手順に含めます。穴あきポリゴンそのものは、外周と穴をまとめた1つの地物です。そのため、propertiesに入れる属性は、基本的にはその地物全体の情報になります。対象範囲名、管理番号、作成日、用途、面積、確認状態などを持たせる場合、穴を差し引いた対象範囲の情報なのか、外周全体の情報なのかを明確にします。面積属性を入れるなら、差し引き後の面積なのか、外周面積なのか、穴面積を別に持つのかをルール化しておくと混乱を防げます。

ファイルを渡す前には、構文として読めるかを確認します。GeoJSONはテキスト形式のため、括弧やカンマ、引用符のミスがあると読み込みに失敗します。穴あきポリゴンでは座標配列が長くなりやすく、手作業で編集した場合は構文ミスが起こりやすくなります。構文が正しくても、図形として妥当とは限りません。そのため、構文確認と図形確認を分けて行うのが安全です。

図形確認では、外周、穴、重なり、自己交差、外周からのはみ出しを見ます。複数の穴がある場合は、すべての穴が意図した位置にあるか確認します。穴が多いデータでは、1つの穴だけが外周の外に出ていたり、座標順が混在していたりすることがあります。全体の表示だけでは見落としやすいため、穴ごとの確認や、異常値の抽出を行うと効率的です。

受け取る側の利用条件も想定します。相手がどのような環境で読み込むかが分からない場合、できるだけ標準的で素直なGeoJSONにしておくことが大切です。独自の属性名や特殊な解釈に依存しすぎると、受け取り側で意味が伝わりにくくなります。穴を表すために表示上の工夫だけを使うのではなく、Polygonの内側リングとして表現すること、属性名は分かりやすくすること、不要な情報を入れすぎないことが基本です。

また、ファイルサイズにも注意します。穴あきポリゴンは外周と穴の両方の座標を持つため、複雑な形状では座標数が増えます。さらに、複数の地物があるとファイル全体が大きくなります。表示や共有に時間がかかる場合は、用途に応じて形状を簡略化することを検討します。ただし、簡略化によって穴が消えたり、外周との位置関係が崩れたりすることがあります。簡略化を行った場合は、必ず処理後の穴の有無と面積差を確認します。

現場利用を想定する場合は、穴の意味を画面上でどう伝えるかも重要です。現場担当者は、GeoJSONの内部構造ではなく、地図上の範囲を見て判断することが多いです。そのため、穴の部分が対象外なのか、立入禁止なのか、別管理なのかを誤解なく伝える必要があります。属性や凡例、補足説明を使って、外周内の白抜き部分が何を意味するのかを明確にします。見た目だけに頼ると、白く抜けた部分が単なる表示不具合と受け取られる可能性もあります。

更新作業がある場合は、外周と穴を別々に確認する流れを作っておくと安全です。たとえば、外周だけが変更された場合、穴の位置関係が崩れていないかを確認します。穴だけが変更された場合、外周内に収まっているか、他の穴と重ならないかを確認します。更新のたびに全体を作り直すと、以前は問題なかった穴が崩れることがあります。変更箇所と影響範囲を分けて確認することで、作業ミスを減らせます。

複数人で編集する場合は、穴あきポリゴンの扱いを共通ルールにしておくことが大切です。ある人は穴として表現し、別の人は別地物として表現すると、同じ種類のデータなのに構造が混在します。混在したデータは、集計や変換のときに扱いにくくなります。対象外区域を穴で表すのか、別地物として表すのか、属性で区別するのかを事前に決めておくと、データの品質が安定します。

引き渡し前には、相手に確認してほしいポイントも整理しておきます。GeoJSONファイルだけを渡して確認を依頼するよりも、穴の部分が対象外であること、面積は穴を差し引いた値であること、座標は経度と緯度の順であることなど、確認観点を添えるほうが誤解を防げます。特に、穴あきポリゴンに慣れていない相手には、外周と内側リングの関係を簡単に説明しておくとよいです。

最終確認では、元資料との照合を行います。元の図面、現地確認結果、測量成果、管理台帳などと比べて、外周と穴の位置が一致しているかを確認します。GeoJSON化の過程で形状が変わっていないか、対象外区域が漏れていないか、余計な穴が入っていないかを見ます。特に、過去データを流用した場合は、古い穴が残っていないか注意します。不要な内側リングが残っていると、面積が小さく計算されたり、表示上の空白が発生したりします。

用途別の確認手順を整えておくと、GeoJSONの穴あきポリゴンは扱いやすくなります。作成者だけが分かるデータではなく、受け取る人、確認する人、現場で使う人が同じ意味で理解できる状態にすることが大切です。穴あきポリゴンは便利な表現ですが、意味づけと確認が不足すると、ただ複雑な図形になってしまいます。だからこそ、作成、表示、集計、受け渡し、更新の各段階で、何を確認するかを決めておくことが重要です。

まとめ

GeoJSONの穴あきポリゴンを扱うときは、単に地図上で白く抜けて見えるかどうかではなく、データ構造として外周リングと内側リングが正しく整理されているかを確認する必要があります。最初のリングが外周を表し、2つ目以降のリングが穴を表すという基本を押さえたうえで、穴が外周の内側に収まっているか、複数の穴が不自然に重なっていないか、PolygonとMultiPolygonを取り違えていないかを見ます。

リングの閉じ方も重要です。外周だけでなく、穴のリングも始点と終点が一致している必要があります。座標順、自己交差、重複点、座標の丸め、経度と緯度の順序など、基本的な確認を省かないことが、表示崩れや変換エラーの予防につながります。特に穴あきポリゴンは、単純な面よりも構造が複雑なため、見た目だけでは不具合に気づきにくい点に注意が必要です。

面積計算では、外周面積から穴面積を差し引く考え方を基本にしながら、座標系や計算方法、属性の意味を確認します。表示では穴に見えていても、データ上は別の図形を重ねているだけの場合があります。その場合、面積や集計では意図した結果にならない可能性があります。外周面積、穴面積、差し引き後面積を分けて確認し、どの値を属性として持たせるのかを明確にしておくと、後から説明しやすくなります。

受け渡し前には、用途に応じた確認手順を整えることが大切です。表示確認、構文確認、図形の妥当性確認、面積確認、属性確認、変換後確認を分けて行うことで、トラブルを減らせます。現場利用や関係者共有では、穴の部分が何を意味するのかを明確に伝える必要があります。対象外区域なのか、別管理区域なのか、作業範囲から除く部分なのかを説明できる状態にしておくと、認識違いを防ぎやすくなります。

GeoJSONの使い方に慣れてくると、穴あきポリゴンは便利な表現です。管理範囲から除外部分を差し引いたり、複雑な土地形状を1つの地物として整理したりできます。一方で、構造を誤ると、表示、面積、属性、受け渡しのすべてに影響します。だからこそ、外周と穴の関係、リングの閉じ方、面積と表示の整合、用途別の確認手順という4つの観点で見直すことが重要です。

現場で取得した位置情報や図形データをGeoJSONとして整理する場合は、データ作成の段階から確認しやすい形にしておくことが大切です。穴あきポリゴンは、単に白く抜けて見せるための表現ではなく、対象範囲と除外範囲の関係をデータとして示す方法です。表示、集計、共有、更新のどの段階でも同じ意味で扱えるように、構造と運用ルールをあわせて確認しておくと、後工程の手戻りを減らしやすくなります。

現場を3Dで残して、あとから測る。
実際の画面と動画で使い方を確認できます。

LRTK Phoneの使い方・実例を見る
資料請求導入相談
現場をスマホで3DスキャンLRTK Phone実例を見る