GeoJSONを扱う現場では、点や線は問題なく表示できるのに、Polygonだけが一部抜ける、面が反転して見える、穴あき形状のつもりが塗りつぶされる、または外周そのものが消えたように見えることがあります。原因は座標値の誤りだけではなく、Polygonのリング構造、リング方向、穴の扱い、変換時の仕様差にあることが少なくありません。この記事では、geojsonで検索する実務担当者に向けて、リング方向が関係してPolygonが抜ける時に確認したい4点を、実務で切り分けやすい順に整理します。
目次
• Polygonの抜けはリング方向だけで判断しない
• 外周リングと内周リングの順番を確認する
• 時計回りと反時計回りの扱いを確認する
• 交差・閉じ忘れ・重複点による不正な面を確認する
• 変換・簡略化・座標系処理でリングが変わっていないか確認する
• 現場データとしてPolygonを安定運用するための考え方
Polygonの抜けはリング方向だけで判断しない
GeoJSONのPolygonが地図上で抜ける時、最初に疑われやすいのがリング方向です。外周が時計回りなのか反時計回りなのか、穴のリングが逆向きになっていないか、という確認は確かに重要です。しかし、実務ではリング方向だけを見ても原因にたどり着けないことが多くあります。なぜなら、Polygonが抜けるように見える現象には、リングの順番、閉じ方、座標列の重複、自己交差、座標系の取り違え、変換時の簡略化、表示側の解釈差など、複数の要因が重なっている場合があるからです。
GeoJSONのPolygonは、単なる点列ではなく、面を表すための構造を持っています。Polygonのcoordinatesには複数のリングを入れることができ、最初のリングが外周、その後に続くリングが内周、つまり穴として扱われます。外周リングは面の輪郭を表し、内周リングはその面から除外する範囲を表します。この前提が崩れると、見た目としてはPolygonが抜けたり、意図しない部分が穴になったり、逆に穴が消えたりします。
ここで重要なのは、リング方向は面の内外を判断する補助情報として使われることがある一方で、すべての表示環境や処理系が同じ厳密さでリング方向を扱うわけではないという点で す。ある環境では多少リング方向が違っていても表示されるのに、別の環境では穴として解釈されたり、塗りつぶしルールの違いによって欠けて見えたりすることがあります。そのため、手元の確認環境では正常でも、納品先や別工程でPolygonが抜けることがあります。
また、リング方向の問題だと思って修正した結果、実際にはリングの順番や自己交差が原因だったというケースもあります。外周と内周の順番が逆になっている場合、方向だけを反転しても構造の問題は残ります。自己交差しているPolygonでは、外周が正しい向きでも面としての解釈が不安定になります。閉じていないリングでは、処理系が自動的に補完して表示することもあれば、不正な形状として無視することもあります。
したがって、Polygonが抜ける時は、まず「リング方向が間違っている」と断定するのではなく、面データとして成立しているかを順番に確認することが大切です。確認の出発点は、Polygonの座標配列が意図した構造になっているかです。次に、外周と内周の区別が正しいかを見ます。そのうえで、リング方向が標準的な向きになっているかを確認し、さらに座標列の閉合、自己交差、変換前後の変化を確認します。
実務では、Polygonが一つだけなら目視で原因を追える場合もあります。しかし、用地境界、施工範囲、管理区域、立入禁止範囲、点群から抽出した面、地物ポリゴンなど、多数のPolygonを扱う場合は、目視だけでは不十分です。表示で抜けた箇所だけを直すのではなく、データ生成の段階で不正なリングを作らない仕組み、変換後に自動チェックする手順、現場で使う前に軽量な確認データで検証する流れを作っておくことが重要です。
外周リングと内周リングの順番を確認する
Polygonが抜ける時に最初に確認したいのは、リング方向そのものよりも、外周リングと内周リングの順番です。GeoJSONのPolygonでは、coordinatesの中に複数のリングを並べることができますが、最初のリングは外周として扱われ、その後のリングは穴として扱われます。つまり、座標の向き以前に、配列内の位置が意味を持ちます。外周にすべきリングが2番目以降に置かれていると、面の本体ではなく穴として解釈される可能性があります。
例えば、ある土地の外周と、その中にある除外範囲をPolygonで表す場合、最初に土地全体の外周リングを置き、次に除外範囲のリングを置きます。この順番が逆になると、処理系によっては小さなリングを外周と見なし、大きなリングを穴として扱おうとするため、表示が崩れます。結果として、本来表示したい大きな面が消えたり、意図しない部分だけが残ったりします。実務上は、これが「Polygonが抜けた」と認識されることがあります。
リングの順番ミスは、手作業でGeoJSONを編集した時だけでなく、別形式から変換した時にも起こります。元データ側では外周と穴の関係を別のルールで保持していたり、複数の面を一つのオブジェクトとして扱っていたりする場合があります。そのデータをGeoJSONに変換する際、外周と内周の関係が正しく整理されないと、座標値自体は正しくてもPolygonとしては不安定になります。特に、複数の島状の面と穴が混在するデータでは注意が必要です。
また、PolygonとMultiPolygonの使い分けも重要です。離れた複数の面を一つのPolygonの複数リングとして入れてしまうと、2番目以降のリングが穴として扱われるため、意図した複数面の表現になりません。離れた面を表したい場合は、それぞれを独立したPolygonとして扱うか、複数のPolygonをまとめる構造を使う必要があります。複数面のつもりでPolygonのcoordinatesにリングを並べている場合、表示環境によっては一部が抜けたように見える原因になります。
確認する時は、まず対象のPolygonを一つ取り出し、coordinatesの最初のリングが本当に外周を表しているかを見ます。座標列を地図上で確認するだけでなく、リングの範囲や面積の大きさを見て、最初のリングが最も外側の輪郭になっているかを確認します。穴がある場合は、2番目以降のリングが外周の内側に収まっているかも重要です。穴のリングが外周の外に出ている場合、データとしての意味が破綻し、処理系によって表示結果が変わりやすくなります。
内周リングは、外周の中に完全に含まれている必要があります。外周に接しているだけ、外周をまたいでいる、穴同士が重なっている、穴が外周の外にあるといった状態は、面として扱いにくくなります。見た目では一見問題なさそうでも、座標値のわずかなズレで穴が外周の線上に乗っていたり、交差していたりすることがあります。このような場合も、塗りつぶし結果が不安定になり、Polygonが抜けたように見えることが あります。
実務では、外周リングと内周リングを人間が直接確認するだけでは限界があります。データ数が多い場合は、外周に対して内周が包含されているか、離れた面を誤って穴として入れていないか、面積が極端に小さいリングが混じっていないかを機械的にチェックすることが望ましいです。特に、現場境界や施工範囲のように作業指示に直結するデータでは、表示できるかどうかだけでなく、意図した構造になっているかを確認する必要があります。
外周と内周の順番を直すだけで解決するケースも多くあります。リング方向を修正する前に、まず最初のリングが外周であること、2番目以降が穴であること、離れた面を穴として扱っていないことを確認してください。ここを飛ばしてリング方向だけを反転すると、表示環境によっては一時的に見えるようになっても、別の工程で再び抜ける可能性があります。
時計回りと反時計回りの扱いを確認する
外周と内周の順番が正しいことを確認したら、次にリング方向を確認します。GeoJSONのPolygonでは、外周リングと内周リングで推奨される向きが異なります。一般的には、外周リングは反時計回り、内周リングは時計回りとして扱う考え方が使われます。この向きの違いにより、面として塗る範囲と穴として抜く範囲を区別しやすくなります。
ただし、ここで注意したいのは、リング方向が違っているからといって、すべての環境で必ず表示されないわけではないということです。多くの表示処理では、リングの順番や塗りつぶしルールを優先して、方向が逆でも表示してくれる場合があります。一方で、データ検証、空間演算、軽量化、別形式への変換、三次元表示、タイル化、印刷用データ生成などの工程では、リング方向の違いが結果に影響することがあります。つまり、表示だけを見て問題ないと判断すると、後工程で抜けや反転が発生することがあります。
リング方向を確認する時は、座標列を順番にたどった時に、面の内部がどちら側にあるかを考えます。外周リングを座標順に進んだ時、内部が左側に来るなら反時計回り、右側に来るなら時計回りです。内周リングは外周とは逆向きになります。穴のリングを外周と同じ向きにしてしまうと、処理系によっては穴として扱われず、塗りつぶされることがあります。逆に、外周リングが穴の向きになっていると、面全体が抜けたように見える場合があります。
リング方向の判定には、座標値から符号付き面積を計算する方法がよく使われます。座標列を順番にたどり、隣り合う点の組み合わせから面積の符号を求めることで、時計回りか反時計回りかを判定できます。実務では計算式そのものを毎回手で扱う必要はありませんが、座標順の違いがリング方向を決めているという理解は重要です。点の並びを逆順にすれば、同じ形状でもリング方向は反転します。
リング方向の修正で注意したいのは、外周と内周を一律に同じ方向へ反転しないことです。Polygon全体が逆になっている場合は、外周と内周の関係を保ちながら向きを整える必要があります。外周だけ、内周だけ、または全リングをまとめて反転する処理を誤ると、別の不具合を作ることがあります。特に穴が複数あるPolygonでは、一つの穴だけ向きが逆、外周だけ逆、すべて逆など、状態が混在することがあります。
また、画面上の見た目と座標上の向きが直感と違う場合があります。地図表示では緯度経度を使うことが多く、画面の上下左右、座標軸の扱い、投影後の見え方によって、人間が見た時計回りと座標計算上の時計回りの感覚がずれることがあります。特に、画面座標では上方向と数値の増減が逆になる場合があるため、見た目だけで向きを判断すると誤ることがあります。確認は、表示画面上の印象ではなく、GeoJSONの座標順に基づいて行うのが安全です。
リング方向に関する実務上の落とし穴として、変換ツールや処理ライブラリが自動的に方向を補正する場合があります。手元で確認したGeoJSONは正しく見えていても、変換後のデータでは方向が変わっていることがあります。また、反対に、元データのリング方向が不統一でも、表示側が自動補正していたため問題が見えず、別の処理に通した時に初めて抜けが発覚することもあります。最終的に使うデータの段階で、外周と内周の向きが整っているかを確認することが大切です。
リング方向の確認は、単独のPolygonだけでなく、データ全体で統一して行う必要があります。一部のPolygonだけが逆向きになっていると、画面全体では問題が見つけにくくなります。例えば、広い管理区域の中で一つの小さな区域だけが表示されない場合、表示倍率によっては見落とします。納品や現場利用の前には、全Polygonに対してリング方向を一括チェックし、外周と内周のルールを統一しておくことが望ましいです。
交差・閉じ忘れ・重複点による不正な面を確認する
リング方向を確認してもPolygonが抜ける場合は、リング自体が有効な面になっているかを確認します。GeoJSONのPolygonでは、各リングは閉じた線である必要があります。つまり、リングの最初の座標と最後の座標が同じでなければなりません。見た目では閉じているように見えても、最後の点が最初の点と完全に一致していない場合、処理系によっては自動的に閉じて表示することもあれば、不正なリングとして扱うこともあります。
閉じ忘れは、手入力や独自プログラムでGeoJSONを生成した時に起こりやすい問題です。点列としては外周を一周しているつもりでも、最後に始点をもう一度入れていないと、リングとしては不完全です。特に、点群や測量結果から境界線を生成し、それを面に変換する処理では、線としての閉合とPolygonリングとしての閉合を混同しやすくなります。線が始点近くまで戻っているだけでは、Polygonとして安全とは言えません。
次に確認したいのが自己交差です。自己交差とは、一つのリングの線分同士が途中で交差している状態です。リボンのようにねじれた形、数字の8のような形、境界線が折り返して自分自身を横切る形などが該当します。このようなリングは、どちら側を面として塗るべきかが曖昧になりやすく、表示環境や塗りつぶしルールによって結果が変わります。ある環境では一部だけ塗られ、別の環境では全体が抜けることがあります。
自己交差は、見た目で分かりやすい大きな交差だけではありません。非常に近い座標で線分が交差している、同じ点に戻ってから別方向へ進んでいる、境界が細く折り返している、といった小さな問題もあります。現場で取得した座標や、複数のデータを結合した境界では、点の順番が途中で入れ替わり、意図せず交差が生じることがあります。座標値が高精度であるほど、微小な交差や重複も残りやすいため注意が必要です。
重複点もPolygon抜けの原因になります。連続する同一座標が多い場合、ゼロ長の線分が発生します。ゼロ長の線分が一つあるだけで必ず表示できなくなるわけではありませんが、簡略化や面積計算、方向判定の過程で不安定になることがあります。また、同じ座標がリング内の離れた位置に何度も現れる場合、リングが部分的に折り返したり、自己接触したりしている可能性があります。こうした状態は、穴の判定や塗りつぶし処理に影響します。
座標点数が少なすぎるリングにも注意が必要です。Polygonのリングは閉じる必要があるため、面として成立するには少なくとも3つの異なる点が必要です。始点と終点を含めると、座標列としては最低でも4点になります。点数が不足しているリング、または異なる点が実質的に2点しかないリングは、面として成立しません。変換や簡略化によって小さなPolygonの点が削られすぎると、この状態になることがあります。
また、極端に細いPolygonや、ほぼ一直線に並んだ点で構成されたPolygonも不安定です。面積がほぼゼロに近い場合、リング方向の判定が不確かになり 、表示時に消えることがあります。施工範囲や管理範囲の境界を扱う場合、細長い区域や帯状の範囲はよく出てきますが、座標の丸めや簡略化によって面積がつぶれると、Polygonとして成立しなくなることがあります。
穴のリングについても、外周と同じように閉合、自己交差、重複点を確認します。穴のリングが不正な場合、外周は正しくても表示結果が崩れます。穴だけが消える場合もあれば、外周全体が抜ける場合もあります。特に、穴が外周に接している、穴同士が接している、穴が非常に小さいといったケースでは、変換や表示の段階で処理結果が変わりやすくなります。
不正な面を確認する時は、表示できるかどうかではなく、面としての幾何条件を満たしているかを見ます。最初と最後の座標が一致しているか、3つ以上の異なる点があるか、自己交差していないか、連続する重複点がないか、面積が極端に小さくないか、穴が外周内に収まっているかを順番に確認します。これらを整えたうえでリング方向を統一すれば、表示環境による差を減らすことができます。
変換・簡略化・座標系処理でリングが変わっていないか確認する
Polygonの抜けは、元データの作成時点ではなく、変換や加工の途中で発生することも多くあります。例えば、別の空間データ形式からGeoJSONへ変換する、座標系を変換する、点数を減らす、範囲で切り出す、複数データを結合する、属性で分割する、といった処理の過程で、リングの順番や方向、閉合状態が変わることがあります。最終的なGeoJSONだけを見ると原因が分かりにくいため、どの工程で変わったのかを追跡することが重要です。
特に注意したいのが簡略化です。Polygonの点数を減らす処理は、表示を軽くするためによく行われます。しかし、簡略化の条件が強すぎると、外周が自分自身と交差したり、穴が外周の外へ出たり、細い部分が消えたりします。小さな穴が消えるだけなら意図した軽量化の範囲かもしれませんが、外周の形が変わって面が分断されたり、穴と外周が接触したりすると、Polygonが不正になって抜けの原因になります。
座標の丸めも見落としやすいポイントです。小数点 以下の桁数を減らすと、ファイルサイズは小さくなりますが、近接していた点が同一座標になったり、細い面の幅が失われたりします。現場で扱う狭い区域や細長い施工範囲では、わずかな丸めでも形状が変わります。特に、緯度経度のような角度単位の座標では、桁数の違いが地上距離に影響します。必要な精度を考えずに丸めると、Polygonの閉合やリング方向に影響することがあります。
座標系の取り違えも、Polygon抜けの原因として重要です。GeoJSONでは一般的に経度、緯度の順で座標を記述します。緯度、経度の順で入れてしまうと、点が意図しない場所に飛び、面が異常に大きくなったり、地図上で表示範囲外に出たりします。これをPolygonが抜けたと誤認することがあります。また、平面直角座標系のようなメートル単位の座標を、経度緯度のつもりでGeoJSONに入れると、表示環境によっては地図上に出てこない、または不正な範囲として扱われることがあります。
座標系を変換する時は、単に数値が変換されているかだけでなく、リングの構造が維持されているかを確認します。座標変換そのものは各点に対する処理ですが、その前後で点の順番やリングの閉合が崩れることがあります。変換後に始点と終点がわずかにずれ たまま出力される、丸めによって重複点が増える、日付変更線付近や極端な範囲でリングが分割される、といったケースでは、元データでは問題がなくてもGeoJSONで不安定になります。
範囲で切り出す処理にも注意が必要です。広域のPolygonを特定区域で切り抜くと、新しい交点が追加され、外周や穴の構造が変わります。この時、外周と内周の関係が再構成されないと、切り出し後のPolygonに不正なリングが残ることがあります。穴が切り出し範囲の外へ出た場合、穴として残すべきか削除すべきかの判断も必要です。切り出し後にリング方向を再確認しないまま使うと、一部の面だけが抜けることがあります。
複数のPolygonを結合する処理でも、リング方向と穴の扱いが変わる場合があります。隣接する面を結合した時、内部境界を削除して一つの外周にする必要がありますが、処理が不完全だと不要なリングが穴として残ることがあります。また、重なった面を統合する時に、重なり部分の境界が複雑になり、自己交差や重複点が発生することがあります。結合後のGeoJSONは、見た目だけでなく、リング数、外周と穴の関係、面積の変化を確認する必要があります。
データの受け渡しでは、元データ、変換直後、軽量化後、最終納品用の各段階でPolygonの状態を確認するのが安全です。どの段階で抜けが発生したかを切り分けるためには、同じ地物IDや属性を維持しておくと追跡しやすくなります。最終データだけを見て修正すると、次回同じ変換処理を行った時に同じ問題が再発します。変換条件や簡略化条件を見直し、生成工程そのものを安定させることが大切です。
現場データとしてPolygonを安定運用するための考え方
GeoJSONのPolygonは、Web地図や業務システムで扱いやすい一方、現場データとして使う場合は表示できれば十分というものではありません。施工範囲、測量範囲、管理区域、立入制限区域、出来形確認範囲などの面データは、現場の判断や作業指示に関わります。Polygonが一部抜けていると、確認漏れ、作業範囲の誤認、報告書の不整合につながる可能性があります。そのため、リング方向の確認は、単なる表示トラブル対応ではなく、データ品質管理の一部として位置づけるべきです。
安定運用の第一歩は、データ作成時のルールを決めることです。外周リングを最初に置くこと、穴は2番目以降に置くこと、外周と穴のリング方向を統一すること、リングは必ず閉じること、離れた面は穴として入れないこと、座標の丸めや簡略化は必要な精度を確認してから行うことを、作成手順の中に組み込みます。担当者ごとに作り方が変わると、同じGeoJSONでも品質がばらつきます。
次に、表示確認と構造確認を分けることが重要です。表示確認は、地図上で見た目が正しいかを確認する作業です。一方、構造確認は、GeoJSONのcoordinatesが仕様どおりに並んでいるか、外周と穴が正しいか、リング方向が統一されているか、自己交差がないかを確認する作業です。表示確認だけでは、表示環境が自動補正している問題を見逃すことがあります。構造確認だけでは、座標系の取り違えや現場感覚とのズレを見逃すことがあります。両方を行うことで、実務上のトラブルを減らせます。
また、Polygonが抜けた時の原因調査では、問題のある地物だけを切り出して確認するのが有効です。データ全体を表示していると、重い、見えない、どこが悪いか分からないという状態になり がちです。対象のFeatureを一つだけにして、外周リングだけで表示する、穴を一つずつ戻す、リング方向を確認する、座標点数を確認するという順番で切り分けると、原因を特定しやすくなります。大規模データでは、この切り出し確認のしやすさが作業効率を左右します。
現場で取得した座標からPolygonを作る場合は、点を取得した順番にも注意が必要です。境界点を歩いて取得した場合、進行方向によって外周リングの向きが決まります。途中で点を追加したり、別の日に取得した点を結合したりすると、点順が乱れ、自己交差や逆向きのリングが発生することがあります。取得時点で閉合を意識し、後処理で点順を整理することが大切です。
穴あきPolygonを扱う場合は、穴として表現すべきものと、別のPolygonとして分けるべきものを整理します。例えば、管理区域の中に除外区域がある場合は穴として表現するのが自然です。一方、離れた複数の管理区域を一つにまとめたい場合は、穴ではなく複数の面として扱う必要があります。この判断を曖昧にすると、GeoJSON上の構造が崩れ、リング方向を整えても意図どおりに表示されません。
さらに、納品や共有を前提にする場合は、最終的な利用環境だけに依存しない確認が必要です。ある地図表示では正しく見えても、別の閲覧環境、帳票作成、解析処理、モバイル端末での表示では結果が変わることがあります。GeoJSONは軽量で扱いやすい形式ですが、実務データとして使うなら、最終用途に合わせた検証が欠かせません。現場で使う前に、代表的なPolygonだけでなく、穴があるもの、細長いもの、複数面を含むもの、境界が複雑なものを含めて確認することが望ましいです。
Polygonの抜けを防ぐには、問題が起きてから手で直すのではなく、生成、変換、確認、共有の流れを整えることが重要です。リング方向の統一、外周と内周の整理、閉合確認、自己交差の検出、座標系の確認、簡略化後の再検証を一連の工程として扱えば、属人的な修正を減らせます。特に、現場で日々データが更新される運用では、毎回人が細かくGeoJSONを読むのではなく、チェック項目を定型化しておくことが現実的です。
GeoJSONのリング方向でPolygonが抜ける時は、外周と内周の順番、時計回りと反時計回り、交差や閉じ忘れ、変換や簡略化によ る変化を順番に確認することで、多くの原因を切り分けられます。見た目の表示だけで判断せず、データ構造として面が正しく成立しているかを確認することが、安定した運用につながります。現場の位置情報、写真、図面、面データを一体で扱う業務では、こうしたGeoJSONの品質確認が作業の確実性を支えます。現地で取得した位置や範囲をすばやく確認し、データ化して活用する流れを整えたい場合は、現場向けの位置情報活用を支援するLRTK Phoneへ自然につなげて検討するとよいでしょう。
LRTKで現場の測量精度・作業効率を飛躍的に向上
LRTKシリーズは、建設・土木・測量分野における高精度なGNSS測位を実現し、作業時間短縮や生産性の大幅な向上を可能にします。国土交通省が推進するi-Constructionにも対応しており、建設業界のデジタル化促進に最適なソリューションです。
LRTKの詳細については、下記のリンクよりご覧ください。
製品に関するご質問やお見積り、導入検討に関するご相談は、
こちらのお問い合わせフォームよりお気軽にご連絡ください。ぜひLRTKで、貴社の現場を次のステージへと進化させましょう。

