top of page

GeoJSONの境界線が閉じない時に見るべき原因4つ

タイマーアイコン.jpeg
この記事は平均6分45秒で読めます
万能の測量機LRTKの説明

著者: LRTKチーム

GeoJSONを扱っていると、地番、敷地、道路区域、管理範囲、点検対象範囲などをポリゴンとして表示したいのに、境界線が閉じず、線の一部が開いて見えることがあります。見た目だけの問題に見えても、実際には座標配列、リングの作り方、変換処理、データ精度、表示側の解釈などが関係している場合があります。特に実務では、測量成果、台帳データ、現地確認結果、設計図面由来の座標を組み合わせることが多く、どこで崩れたのかを切り分けないまま修正すると、別の箇所で面が反転したり、隣接地との関係が分かりにくくなったりすることがあります。この記事では、GeoJSONの境界線が閉じない時に見るべき原因を4つに整理し、実務担当者が確認しやすい順番で解説します。


目次

GeoJSONの境界線が閉じないとはどのような状態か

原因1:Polygonのリング始点と終点が一致していない

原因2:座標順序や階層構造を取り違えている

原因3:変換や丸め処理で微小なずれが生じている

原因4:自己交差や重複点で面として解釈できない

境界線の不具合を見つけた時の確認手順

まとめ


GeoJSONの境界線が閉じないとはどのような状態か

GeoJSONで境界線が閉じないという表現には、いくつかの状態が含まれます。もっとも分かりやすいのは、画面上でポリゴンの外周が一周せず、始点と終点の間にすき間が見える状態です。地図上では、敷地や区画の輪郭が途中で途切れて見えたり、塗りつぶしが想定どおりに表示されなかったりします。データとしてはPolygonのつもりで作成しているのに、表示上はLineStringのように見える場合もあります。


一方で、見た目では閉じているように見えるのに、処理上は閉じていないと判定されることもあります。たとえば、始点と終点の座標が非常に近いものの、数値としては完全には一致していない場合です。人の目には同じ地点に見えても、データ検査では別の座標として扱われます。この場合、面積計算、内外判定、隣接ポリゴンとの重なり確認、他形式への変換などでエラーになることがあります。


また、境界線が閉じない原因は、必ずしも外周の最後の座標だけにあるとは限りません。GeoJSONのPolygonは、外側の輪郭と、必要に応じて内側の穴を表すリングで構成されます。外周だけでなく、穴のリングも閉じている必要があります。外周は正常でも、穴のリングに不備があると、全体として正しいPolygonとして扱えない場合があります。


実務上注意したいのは、表示できることと、正しいデータであることは同じではないという点です。地図ビューアや変換ツールの中には、不完全な座標列をある程度補って表示するものがあります。そのため、画面上では問題がなさそうでも、別のシステムへ渡した時に境界が崩れることがあります。反対に、データとしては閉じていても、座標系、座標順序、表示設定の影響で、見た目だけがずれて見えることもあります。


したがって、GeoJSONの境界線が閉じない時は、最初から手作業で線をつなぐのではなく、データ構造、座標値、変換履歴、幾何形状の妥当性を順番に確認することが大切です。特に境界データは、施工範囲、管理区分、権利関係、点検対象範囲などに関わることがあるため、見た目の補正だけで済ませると、後工程で説明しにくいデータになってしまいます。


原因1:Polygonのリング始点と終点が一致していない

GeoJSONでPolygonを表現する場合、境界を構成する座標列はリングとして扱われます。リングとは、始点から複数の点を順番につなぎ、最後に始点へ戻る閉じた線のことです。GeoJSONのPolygonでは、外周や穴を構成するリングについて、最初の座標と最後の座標が同じ位置を示す必要があります。つまり、人間が見て一周しているように見えるだけでは不十分で、座標配列の最後に始点と同じ座標をもう一度入れて閉じる必要があります。


よくある不具合は、作成時に始点を最後へ再掲していないケースです。たとえば、四角形の敷地を4つの角点で表した場合、見た目としては4点をつなげば四角形になるように感じます。しかしPolygonのリングとして扱うには、1点目、2点目、3点目、4点目、そして再び1点目という順番で座標を持たせる必要があります。GeoJSONの線形リングは、閉じたLineStringとして4つ以上の位置を持つ必要があるため、三角形であっても最後に始点を再掲した4点構成になります。


この問題は、LineStringからPolygonへ変換した時にも起こりやすいです。現地で取得した境界線や、図面から抽出した線分データをそのままPolygonの座標配列に入れると、最後の点が始点に戻っていない場合があります。線分としては終点まで描けていても、面としては閉じていないため、塗りつぶしや面積計算に失敗することがあります。


確認する時は、まずPolygonのcoordinatesを見て、外周リングの最初の座標と最後の座標を比較します。経度、緯度、高さなど、座標に含まれる要素の数が一致しているかも見ます。平面上の確認だけをしていると、高さ情報だけが異なるデータを見落とすことがあります。処理系によっては高さを無視する場合もありますが、データの一貫性を保つには、同じ意味の座標として整理しておく方が安全です。


始点と終点が一致していない場合の修正は、単純に最初の座標を最後へ追加するだけで済むこともあります。ただし、常に機械的に追加すればよいわけではありません。終点が本来の始点に近いものの微妙に違う場所にある場合、その終点が測定誤差なのか、別の境界点なのか、入力ミスなのかを確認する必要があります。境界点の意味を確認せずに始点へ強制的に戻すと、本来の形状を変えてしまう可能性があります。


特に土地や施設管理の境界では、角点の順番や点の採用理由が重要です。最後の点が始点と一致していない時は、まず座標列の取得元を確認し、点番号、測点名、図面上の節点、現地での観測点と照合することが望ましいです。単なる閉じ忘れであれば修正は比較的容易ですが、境界点そのものが不足している場合は、元データに戻って補完する必要があります。


また、Polygonの中に穴を持つ場合は、外周だけでなく内側のリングも確認します。外周が閉じていても、穴のリングが閉じていなければ、面全体の解釈が不安定になります。たとえば、建物外周と中庭、管理区域と除外区域、道路区域と対象外部分のように、内側に抜きたい範囲がある場合は、それぞれのリングの始点と終点が一致しているかを確認します。


実務では、まずデータ検査の段階で、各リングの点数、始点と終点の一致、座標要素の数、空の座標配列が混じっていないかを確認する流れにすると、単純な閉じ忘れを早い段階で見つけやすくなります。境界が閉じない問題では、この基本的なリングの閉じ方から確認するのが安全です。


原因2:座標順序や階層構造を取り違えている

GeoJSONの境界線が閉じない時、座標値そのものよりも、座標の並べ方や階層構造に原因がある場合があります。GeoJSONでは、点、線、面、複数面でcoordinatesの入れ子構造が変わります。Pointは1つの座標、LineStringは座標の配列、Polygonはリングの配列、MultiPolygonはPolygonの配列というように、形状タイプごとに階層が異なります。この構造を取り違えると、データを受け取った側が意図した面として解釈できず、境界が閉じないように見えることがあります。


特に多いのは、PolygonとLineStringの混同です。線として取得した境界座標を、そのままPolygonのcoordinatesへ入れたつもりでも、リングを包む階層が不足していることがあります。見た目には座標の羅列なので分かりにくいですが、Polygonでは外周リング全体をさらに配列で包む必要があります。穴がない単純なPolygonであっても、外周リングはリングの配列の中に置かれます。この階層がずれていると、処理側が座標列を正しく読み取れず、閉じた面ではなく不完全な形として扱うことがあります。


MultiPolygonを扱う場合はさらに注意が必要です。複数の区画、飛び地、分離した管理範囲などを1つのFeatureで表す場合、MultiPolygonを使うことがあります。この時、各Polygonがそれぞれ外周リングを持ち、必要に応じて穴のリングを持ちます。つまり、複数の面をまとめる階層、各面を表す階層、各リングを表す階層、各座標を表す階層が順番に必要です。どこかの階層が不足したり、逆に余分に増えたりすると、閉じているはずの境界が正しく解釈されません。


座標順序の取り違えも境界線が崩れる代表的な原因です。RFC 7946に沿うGeoJSONでは、座標参照系はWGS 84で、座標は経度、緯度の順に扱うのが基本です。実務で扱う座標表や測量データでは、緯度、経度の順に表示されていたり、平面直角座標系のX、Yとして扱われていたりすることがあります。この違いを意識せずに変換すると、本来の位置とは大きく離れた場所へ点が配置され、境界線が極端に伸びたり、折れたり、閉じていないように見えたりします。


平面座標からGeoJSONへ変換する場合も注意が必要です。元データがメートル単位の平面直角座標やローカル座標であるにもかかわらず、一般的な地図表示側に経度、緯度として読ませてしまうと、点の並びが正しくても表示は大きく崩れます。その結果、境界が閉じない、面が見えない、世界の別の位置に表示されるといった問題につながります。外部連携や一般的な地図表示で使うGeoJSONでは、変換後の座標系と軸順を明示して確認することが重要です。


また、座標の並び順が外周に沿っていない場合もあります。Polygonのリングは、境界をたどる順番で座標が並んでいる必要があります。角点の一覧を点番号順や取得順ではなく、別の基準で並べ替えてしまうと、点同士が意図しない順番で結ばれます。たとえば、四角形の対角点同士が先につながると、線が交差し、面として不自然な形になります。この場合、始点と終点が同じでも、正しい境界としては扱いにくくなります。


実務で確認する際は、まずgeometryのtypeとcoordinatesの階層が一致しているかを見ます。PolygonのつもりなのにLineStringの構造になっていないか、MultiPolygonのつもりなのにPolygonの構造になっていないかを確認します。次に、座標の順序が経度、緯度の想定に合っているか、元データの座標系が何か、単位が度なのかメートルなのかを確認します。最後に、座標列が境界を一筆書きでたどる順番になっているかを見ます。


この原因は、見た目の修正だけでは解決しにくいのが特徴です。座標の階層や順序が間違っている状態で、無理に始点と終点だけを合わせても、正しい面にはなりません。まずデータの型と構造を合わせ、その上でリングの閉合や形状の妥当性を確認することが重要です。


原因3:変換や丸め処理で微小なずれが生じている

GeoJSONの境界線が閉じない問題は、元データでは閉じていたはずなのに、形式変換や座標変換、丸め処理を経た後に発生することがあります。これは実務で起こりやすい原因です。測量データ、設計図面、台帳データ、表計算データ、別形式の地理空間データなどをGeoJSONへ変換する過程で、座標値の桁数が変わったり、座標系が変換されたり、端点の扱いが変わったりするためです。


たとえば、元データでは始点と終点が同じ座標だったとしても、変換時に片方だけ丸め方が変わると、数値としては一致しなくなることがあります。小数点以下の非常に小さな差であっても、データ検査では別の座標として扱われます。表示上はほとんど同じ場所に見えるため、目視では気づきにくいのですが、面としての検証や他形式への再変換で不具合が出ることがあります。


丸め処理は、ファイルサイズを小さくする目的や、表示に不要な桁を省略する目的で行われることがあります。しかし、境界データでは、むやみに桁を減らすと隣接する点が同一化されたり、逆に閉じるべき点の一致が崩れたりすることがあります。特に狭い範囲の境界、細長い施設、道路の端部、敷地の切り欠き、設備まわりの小さな除外範囲などでは、わずかな丸めでも形状に影響が出やすくなります。


座標系変換でも注意が必要です。緯度経度、平面直角座標、ローカル座標、図面上の任意座標などを行き来する場合、変換条件が適切でないと、境界全体がずれるだけでなく、点同士の相対関係にもわずかな差が生じることがあります。特に複数のデータを別々の手順で変換してから結合した場合、同じ境界点を表しているはずなのに座標が一致しないことがあります。


さらに、編集ソフトや変換プログラムが自動補正を行う場合もあります。たとえば、重複点を削除する、短すぎる線分を省略する、近接点を統合する、不要な桁を丸めるといった処理です。これらはデータを軽くしたり見た目を整えたりする目的では便利ですが、境界の閉合条件を壊すことがあります。特に、始点と終点の片方だけが削除された場合、リングが開いた状態になることがあります。


微小なずれを確認する時は、目視だけでは不十分です。始点と終点の座標を数値で比較し、差分を確認します。完全一致を求める検査なのか、一定の許容差内で同一点とみなす検査なのかも確認します。実務では、データの用途によって許容できる差が異なります。概略表示だけなら問題にならない差でも、境界管理、施工確認、数量算出、出来形比較などでは無視できない場合があります。


ただし、微小なずれを見つけたからといって、すぐにすべての近接点を統合するのは危険です。近い点であっても、意味の異なる境界点である可能性があります。たとえば、隣接する構造物の角、境界の折れ点、管理上の区切り点などは、距離が近くても別点として残すべき場合があります。閉じるべき始点と終点だけを対象にするのか、全体の近接点を整理するのかを分けて考える必要があります。


変換後に境界が閉じなくなる問題を防ぐには、変換前後で検査を行うことが有効です。元データで閉じていたか、変換後も始点と終点が一致しているか、点数が変わっていないか、面積が極端に変化していないか、重複点や短い線分が増えていないかを確認します。複数回の変換を繰り返すほど、どの段階でずれたのか分かりにくくなるため、作業ごとに検査結果を残しておくと後から説明しやすくなります。


原因4:自己交差や重複点で面として解釈できない

境界線が閉じないように見える原因には、始点と終点が一致しているにもかかわらず、Polygonとして正しく解釈できない形状になっているケースもあります。代表的なのが、自己交差、重複点、重複線分、極端に短い線分、穴の配置不整合です。この場合、データ上はリングが閉じているように見えても、面としての意味が不安定になり、表示や解析で不具合が出ることがあります。


自己交差とは、1つのリングの中で境界線が自分自身と交差している状態です。たとえば、点の順番を間違えて蝶結びのような形になった場合、始点と終点は一致していても、外周がどちら側なのか判断しにくくなります。地図表示では一部が塗りつぶされなかったり、意図しない三角形が表示されたり、境界が途中で切れているように見えたりします。


重複点も問題になります。同じ座標が連続して何度も入っている場合、長さのない線分が発生します。多くの場合は見た目に影響しないこともありますが、幾何処理や検査では不正な形状として扱われることがあります。また、同じ線分を往復するように座標が並んでいると、境界の一部が重なり、面の外周として解釈しにくくなります。


穴を持つPolygonでは、外周と内側リングの関係も重要です。穴は外周の内側にある必要があります。穴のリングが外周の外に出ていたり、外周と交差していたり、穴同士が不自然に重なっていたりすると、面としての解釈が不安定になります。この場合、境界線が閉じていないというより、面の構成が成立していない状態です。


また、リングの向きが原因で表示が不安定になることもあります。RFC 7946では、外周は反時計回り、穴は時計回りという向きが示されています。ただし、互換性のために、向きが異なるPolygonをただちに拒否しない処理系もあります。そのため、向きの違いだけで常に表示不能になるとは限りませんが、外周と穴の扱いを一貫させておく方が、他システムへ渡した時の誤解を減らせます。


自己交差や重複点の厄介な点は、単純な閉合確認だけでは見つからないことです。始点と終点が一致しているかどうかだけを検査しても、面として正しいかは分かりません。境界線が閉じない、塗りつぶしがおかしい、面積が想定と大きく違う、変換後に一部が消えるといった場合は、リングの閉合だけでなく、幾何形状の妥当性を確認する必要があります。


実務では、自己交差が発生する原因として、点の並び替え、複数線分の結合、隣接境界の切り貼り、図面からの抽出、手入力による座標追加などが考えられます。特に、境界点を一括で並べ替える処理は注意が必要です。座標値の大小順、点番号順、取得時刻順などで並べても、必ずしも外周を正しくたどる順番にはなりません。境界は形状に沿った順番で並んでいなければ、面として成立しません。


修正する場合は、問題箇所だけを部分的に直すのではなく、リング全体の流れを確認します。どの点から始まり、どの辺を通り、どの点へ戻るのかを図面や現地情報と照合します。不要な重複点を削除する場合も、境界の意味を失わないようにします。自己交差がある場合は、交差している線分を分割して別の面として扱うべきなのか、点の順番を直せば済むのかを判断します。


境界線が閉じないという現象の背後には、こうした面としての妥当性の問題が隠れていることがあります。閉じる、表示する、計算できる、説明できるという4つの観点で確認すると、単なる見た目の修正ではなく、後工程でも使いやすいGeoJSONに整えやすくなります。


境界線の不具合を見つけた時の確認手順

GeoJSONの境界線が閉じない時は、原因を一度に探そうとすると混乱しやすくなります。実務では、単純な構文の問題から、座標の意味、変換履歴、幾何形状の妥当性へと順番に確認していくと、手戻りを減らせます。


最初に見るべきなのは、geometryのtypeです。Polygonとして扱いたいのか、MultiPolygonとして扱いたいのか、あるいは本来はLineStringなのかを確認します。境界線として見えているデータでも、面として管理したい場合はPolygonまたはMultiPolygonである必要があります。線としての境界表示だけでよい場合と、面積や内外判定まで行いたい場合では、必要な構造が異なります。


次にcoordinatesの階層を確認します。Polygonであれば、外周リングが正しい配列の中に入っているかを見ます。MultiPolygonであれば、複数のPolygonをまとめる階層が正しいかを見ます。階層が1つ足りない、または1つ多いだけでも、表示や処理が崩れることがあります。目視で分かりにくい場合は、1つのFeatureだけを取り出して、座標配列の入れ子を丁寧に追うと確認しやすくなります。


その次に、各リングの始点と終点を比較します。外周リングだけでなく、内側のリングも対象にします。座標が完全に一致しているか、点数が十分か、空のリングが混じっていないかを確認します。終点が始点に近いだけで一致していない場合は、どの程度の差があるかを数値で確認します。


続いて、座標順序と座標系を確認します。経度、緯度の順番になっているか、元データが平面座標なのか、緯度経度なのか、単位が想定どおりかを見ます。表示位置が極端にずれる場合や、線が長く伸びる場合は、この段階で原因が見つかることが多いです。座標順序の取り違えは、境界が閉じないだけでなく、全体の位置ずれにも直結します。


さらに、点の並び順を確認します。座標列が実際の境界を順番にたどっているか、途中で対角線のように飛んでいないか、同じ辺を戻っていないかを見ます。点番号や取得順がそのまま境界順になるとは限りません。特に複数の線分を結合したデータでは、線分の向きが混在していることがあるため、つなぎ目の確認が重要です。


最後に、自己交差、重複点、重複線分、穴の配置を確認します。始点と終点が一致していて、階層も正しいのに表示がおかしい場合は、形状そのものの妥当性に問題がある可能性があります。面積が極端に小さい、面積が想定より大きい、塗りつぶしが一部反転する、隣接する面と重なるといった症状があれば、幾何形状の検査が必要です。


修正後は、必ず再確認を行います。境界が閉じたかだけでなく、面積、外接範囲、点数、隣接データとの関係、属性との対応を確認します。GeoJSONではgeometryとpropertiesが一体で使われるため、形状を修正した後に属性の対応がずれていないかも見ておくべきです。たとえば、複数ポリゴンを分割した場合、元の管理番号や名称が正しく引き継がれているかを確認します。


境界線の不具合は、1回の修正で終わらないこともあります。変換前の元データ、変換後のGeoJSON、表示確認用データ、納品用データが別々に存在する場合、どれを正として直すのかを決める必要があります。表示用GeoJSONだけを直しても、元データに不具合が残っていれば、次回変換時に同じ問題が再発します。できるだけ上流のデータで原因を特定し、修正履歴を残すことが重要です。


また、複数人で作業する場合は、閉合確認の基準を共有しておくことが大切です。完全一致を必須にするのか、許容差を設けるのか、穴の扱いをどうするのか、座標の桁数をどこまで保持するのかを決めておかないと、担当者ごとに修正方針が変わります。境界データは後から再利用されることが多いため、見た目だけでなく、検査しやすい状態に整えることが品質管理につながります。


まとめ

GeoJSONの境界線が閉じない時は、まずPolygonのリングとして始点と終点が一致しているかを確認します。単純な閉じ忘れであれば、最初の座標を最後に再掲することで解決できる場合があります。ただし、境界点の意味を確認せずに機械的に補正すると、本来の形状を変えてしまうことがあるため、元データとの照合が大切です。


次に、geometryのtypeとcoordinatesの階層を確認します。Polygon、MultiPolygon、LineStringでは座標配列の構造が異なります。階層の取り違えや座標順序の誤りがあると、始点と終点が合っていても正しい面として表示されません。経度と緯度の順番、平面座標と緯度経度の違い、座標列の並び順を丁寧に確認する必要があります。


また、変換や丸め処理による微小なずれも見落としやすい原因です。元データでは閉じていた境界が、変換後にわずかに開くことがあります。表示上は同じ位置に見えても、数値として一致していなければ、検査や解析で不具合になる可能性があります。変換前後で点数、始点終点、面積、外接範囲を比較すると、どの段階で問題が起きたかを追いやすくなります。


さらに、自己交差や重複点があると、閉じているように見える境界でも面として解釈できないことがあります。境界線が閉じない問題は、単なる端点の不一致だけでなく、面全体の妥当性の問題として見ることが重要です。外周、穴、点の順番、交差、重複をまとめて確認することで、後工程でも使いやすいGeoJSONに整えられます。


現場や施設管理でGeoJSONを使う場合、境界データは地図表示だけでなく、範囲確認、点検記録、数量整理、関係者への説明にも関わります。だからこそ、閉じない境界を見つけた時は、見た目だけを直すのではなく、データ構造と座標の意味を確認しながら修正することが大切です。取得時点から座標、写真、メモ、位置関係をそろえて残し、変換前後の検査結果を残しておくと、後から原因を追いやすく、再利用しやすい境界データに整えやすくなります。


LRTKで現場の測量精度・作業効率を飛躍的に向上

LRTKシリーズは、建設・土木・測量分野における高精度なGNSS測位を実現し、作業時間短縮や生産性の大幅な向上を可能にします。国土交通省が推進するi-Constructionにも対応しており、建設業界のデジタル化促進に最適なソリューションです。

LRTKの詳細については、下記のリンクよりご覧ください。

 

製品に関するご質問やお見積り、導入検討に関するご相談は、

こちらのお問い合わせフォームよりお気軽にご連絡ください。ぜひLRTKで、貴社の現場を次のステージへと進化させましょう。

bottom of page