GeoJSONを地図表示や位置管理に使うとき、見た目の不具合として多いのが「点が遠くへ飛ぶ」「線が画面外へ伸びる」「ポリゴンが想定外の場所に描かれる」といった範囲外座標の混入です。ファイル形式としては正しいJSONでも、座標値の前提がずれていたり、緯度経度の順序が入れ替わっていたり、現地で取得した座標と管理したい区域の範囲が合っていなかったりすると、実務では大きな手戻りにつながります。
この記事では、geojson 使い方を調べている実務担当者に向けて、GeoJSONの範囲外座標を見つけるための確認ポイントを5つに分けて解説します。特定のソフトウェアやサービス名には依存せず、どの環境でも応用しやすい考え方として整理します。
GeoJSONの座標順序と数値範囲を最初に確認する
GeoJSONで範囲外座標を見つけるとき、最初に確認したいのは座標の順序です。GeoJSONでは、座標は一般的に経度、緯度の順で記録します。実務でよく使われる地図画面や帳票では、緯度、経度の順で表示されることも多いため、入力や変換の途中で順序が入れ替わると、地物がまったく別の場所に表示されます。たとえば日本付近の座標であれば、経度はおおむね120度台から150度台、緯度は20度台から40度台に収まることが多いです。この前提に対して、1つ目の値が30前後、2つ目の値が130前後になっている場合は、緯度経度の順序が逆になっている可能性を疑う必要があります。
範囲外座標の確認では、いきなり地図に表示して目視するよりも、まず座標値そのものを読む姿勢が大切です。地図に表示されない、または表示範囲が大きく引き伸ばされる場合、表示環境側の問題に見えることがあります。しかし実際には、GeoJSON内の一部の座標だけが異常に遠くへ飛んでいることがあります。1点だけでも外れた座標が含まれると、全体の外接範囲が大きくなり、地図画面で本来の対象区域が小さく縮んで見えることがあります。表示倍率を変えても見つけにくい場合は、座標配列の最大値と最小値を確認するほうが早いです。
経度と緯度の基本的な数値範囲も確認しておきます。経度は一般にマイナス180度から180度、緯度はマイナス90度から90度の範囲で扱います。この範囲を超える値が入っている場合、GeoJSONとしての座標値の前提が崩れている可能性があります。もちろん、用途によっては高さや時刻に相当する追加値が座標配列に含まれることもありますが、最初の2つの値が経度と緯度として読めるかどうかは基本確認です。3つ目以降の値がある場合でも、最初の2値の意味を取り違えないことが重要です。
また、小数点の位置にも注意が必要です。現地で取得した座標を変換する際、桁区切りや小数点の処理が崩れると、本来は139.123456のような値であるべきところが139123456のような値になったり、逆に0.139123456のように極端に小さな値になったりします。これらは見た目では単なる数値ですが、地理座標としては明らかに範囲外です。特に表計算形式やテキスト形式からGeoJSONへ変換する工程では、列の型、区切り文字、少数点記号、文字コードの扱いが影響することがあります。変換後のGeoJSONだけを見るのではなく、元データの座標列と変換後のcoordinatesを対応させて確認すると、原因を絞り込みやすくなります。
座標順序の確認では、代表点をいくつか選んで実際の住所、地番、路線、施設、現場範囲と照らし合わせるのも有効です。すべての座標を手作業で見る必要はありませんが、対象区域の北端、南端、東端、西端に近い点や、作業上重要な点を選び、想定した位置にあるかを確認します。GeoJSONはデータ量が増えると、配列の入れ子が深くなり、個々の座標の意味を追いにくくなります。そのため、まずは座標値の範囲と順序という基本を押さえることが、後の確認を楽にします。
範囲外座標の原因を調べるときは、「表示できないから壊れている」と早合点しないことも大切です。GeoJSONの文法は正しく、地物の種類も合っているのに、座標だけが業務で想定している範囲から外れているケースは珍しくありません。この場合、データ構造の修正ではなく、座標値の前提確認が中心になります。まず経度と緯度の順序、値の範囲、小数点の位置、代表点の実在位置を確認することで、原因の大半を初期段階で切り分けることができます。
対象区域の外接範囲を決めて外れ値を抽出する
座標値の基本確認ができたら、次に対象区域の外接範囲を決めます。外接範囲とは、管理対象となる区域をすっぽり囲む最小または余裕を持った矩形範囲のことです。GeoJSON内のすべての座標が、この範囲の中に入っているかを確認することで、範囲外座標を効率よく見つけられます。実務では、行政区域、現場範囲、路線区間、施設敷地、調査範囲など、データを使う目的によって許容される範囲が変わります。そのため、単に日本国内にあるかどうかだけではなく、今回の業務で許される範囲を明確にすることが大切です。
外接範囲を決めるときは、対象区域の西端、東端、南端、北端に相当する経度緯度を設定します。たとえば、ある市区町村内の施設点を扱うなら、その市区町村を少し広めに囲む範囲を設定します。道路や河川のように細長い対象であれば、起点から終点までを含みつつ、左右方向にも一定の余裕を見ます。余裕をまったく持たせないと、境界付近の正しい点まで外れ値として拾ってしまうことがあります。一方で、余裕を広く取りすぎると、本来見つけたい範囲外座標を見逃します。現場や台帳の性格に合わせて、確認用の範囲を決めることが重要です。
外接範囲による確認では、各座標について、経度が西端以上かつ東端以下、緯度が南端以上かつ北端以下であるかを見ます。この条件から外れた座標は、範囲外候補として抽出します。ここで大切なのは、抽出された座標をすぐに誤りと決めつけないことです。対象区域の近くに関連施設がある場合、作業用の基準点や補助点が区域外に置かれている場合、あるいはデータの仕様として区域外の参照点を持つ場合もあります。範囲外候補は、あくまで確認対象として扱い、業務上必要な座標か、誤入力や変換ミスかを判断します。
点データの場合、外接範囲での抽出は比較的わかりやすいです。1つの地物に1つの座標が対応していれば、範囲外の点を一覧化し、属性情報と照合できます。施設名、管理番号、路線名、距離標、調査日、作成者などの属性があれば、どの工程で混入した座標かを追いやすくなります。範囲外座標だけを抜き出して確認することで、全体のデータを眺めるよりも効率的に問題箇所を発見できます。
線や面のデータでは、1つの地物の中に多数の座標が含まれます。この場合、地物全体が範囲外にあるのか、一部の頂点だけが飛んでいるのかを分けて確認する必要があります。たとえば道路中心線の一部の頂点だけが遠くへ飛んでいると、地図上では線が長く伸びたように表示されます。ポリゴンの頂点が1つだけ範囲外にあると、面が大きな三角形のように歪むことがあります。このような場合、地物の属性だけではなく、何番目の座標が外れているのかまで確認できると修正しやすくなります。
外接範囲で抽出した結果は、確認用の一覧として残しておくと便利です。どのファイルの、どの地物の、どの座標が、どの範囲条件に対して外れていたのかを記録します。範囲外候補を修正したあとに再確認する際、同じ条件でチェックすれば、修正漏れや新たな混入を見つけやすくなります。これは一度きりの作業ではなく、データ更新や再変換のたびに繰り返せる確認手順として整えておくと効果的です。
また、外接範囲は1つだけでなく、用途に応じて複数持つこともあります。広域の確認では都道府県や市区町村レベルの範囲を使い、詳細確認では工区や施設単位の範囲を使う方法です。広い範囲では座標順序の入れ替わりや大きな変換ミスを拾いやすく、狭い範囲では隣接区域への混入や対象外データの紛れ込みを見つけやすくなります。GeoJSONの使い方に慣れていない段階では、最初から細かい条件にしすぎず、広い範囲から狭い範囲へ段階的に確認すると、判断しやすくなります。
点・線・面ごとに座標の入り方を分けて確認する
GeoJSONには、点、線、面など複数の地物表現があります。範囲外座標を見つけるには、地物の種類ごとに座標の入り方が違うことを理解しておく必要があります。点であればcoordinatesの中に1つの座標が入ります。線であれば複数の座標が順番に並びます。面であれば外周や内周を表す座標列が入り、さらに複数の面を持つ場合には入れ子が深くなります。つまり、同じcoordinatesという名前でも、地物の種類によって確認すべき階層が変わります。
点データの確認では、各地物の座標が対象範囲内にあるかを直接見ます。範囲外があれば、その地物の属性を確認し、入力ミス、住所や管理番号の取り違え、緯度経度の逆転、測地系の違いなどを疑います。点は構造が単純なため、範囲外座標の原因も比較的追いやすいです。ただし、点数が多い場合は、1点だけの異常が見落とされやすくなります。特に大量の現地記録や施設台帳をGeoJSON化した場合、全体表示では正常に見えても、一部の点だけが遠方に飛んでいることがあります。
線データでは、座標の順序と連続性が重要になります。1本の線を構成する頂点のうち、途中の1点だけが範囲外になると、前後の点と結ばれて不自然な長い線分ができます。線の始点と終点が正しい場所にあっても、中間点が飛んでいる場合があります。そのため、線データでは、各頂点が対象範囲内にあるかだけでなく、隣り合う頂点同士の距離が極端に大きくないかも確認すると効果的です。たとえば、通常は数メートルから数十メートル間隔で記録されるべき線に、突然数十キロメートル離れた点が混じっていれば、範囲外または順序異常の可能性が高いです。
面データでは、外周の閉じ方と頂点の飛びを確認します。ポリゴンは外周が閉じた座標列として扱われるため、最初と最後の座標が対応しているか、外周の途中に遠方の点が混じっていないかを見ます。1点だけ外れると、面が大きく引き伸ばされ、地図表示では対象区域を覆う巨大な図形のように見えることがあります。また、内周を持つ面では、穴の部分を表す座標列にも範囲外が混じる可能性があります。外周だけを確認して安心してしまうと、内周の異常を見逃すことがあります。
複数の点、複数の線、複数の面をまとめて持つデータでは、さらに注意が必要です。1つの地物の中に複数の座標列が入るため、どの部分が範囲外なのかを特定しにくくなります。たとえば、複数の離れた区画を1つの地物として扱っている場合、そのうち1区画だけが対象外にあることがあります。このとき、地物全体を削除してしまうと正しい区画まで失われます。範囲外座標を見つけたら、地物単位で判断するのか、座標列単位で判断するのかを分けることが必要です。
地物の種類ごとの確認では、属性情報との対応も重要です。GeoJSONでは、形状を表すgeometryと、説明情報を表すpropertiesが分かれています。範囲外座標を見つけたとき、その座標がどの属性を持つ地物に属しているかを確認できなければ、修正判断が難しくなります。管理番号や名称が空欄だったり、複数地物で同じ番号が使われていたりすると、範囲外座標を見つけても業務上の照合に時間がかかります。座標確認とあわせて、属性の識別性も確認しておくと、修正作業がスムーズになります。
また、点、線、面の混在データでは、確認基準を一律にしすぎないことが大切です。点は範囲内にあるかどうか、線は頂点と線分の飛び、面は外周や内周の歪みというように、見るべき観点が少しずつ違います。すべてを同じ目視確認だけで済ませようとすると、線や面の一部だけが外れているケースを見逃します。GeoJSONの構造を理解し、地物の種類に応じた確認手順を持つことが、範囲外座標の発見精度を高めます。
投影座標や単位の混在による範囲外を疑う
GeoJSONの範囲外座標でよくある原因のひとつが、緯度経度と投影座標の混在です。GeoJSONで地図表示に使う座標は、経度と緯度のような角度単位の座標を前提に扱うことが一般的です。しかし、測量や設計、図面作成の実務では、メートル単位の平面座標を使う場面も多くあります。この平面座標をそのままGeoJSONの経度緯度として入れてしまうと、数千、数万、数十万といった値になり、明らかに地理座標の範囲を超えます。座標値が大きすぎる場合は、単なる入力ミスではなく、座標系や単位の混在を疑う必要があります。
たとえば、経度緯度であれば値はおおむね数十から百数十の範囲に収まります。一方、平面座標では、現場基準の座標や公共座標として、メートル単位の大きな数値が使われることがあります。このような値がcoordinatesに入っていると、GeoJSONとしての構造は成立していても、地図上の正しい位置には表示されません。範囲外座標を見つけたとき、値の桁が経度緯度らしくない場合は、元データの座標系を確認することが重要です。
投影座標の混在は、ファイル変換時に起きやすい問題です。設計図面、測量成果、台帳データ、現地取得データなど、異なる工程で作成されたデータをまとめると、それぞれの座標系が違うことがあります。あるデータは経度緯度、別のデータは平面直角座標、さらに別のデータは現場独自のローカル座標というように、前提が揃っていないままGeoJSON化されると、範囲外座標が混入します。見た目のファイル形式が同じでも、座標の意味が同じとは限りません。
単位の混在にも注意が必要です。角度の表し方には、小数の度で表す方法のほか、度分秒に近い表記から変換された値が混じることがあります。度分秒を正しく小数度に変換していない場合、数値としてはそれらしく見えても、位置がずれることがあります。たとえば、見た目は緯度経度に近い桁でも、分や秒を十進数として誤って扱うと、数百メートルから数キロメートル単位のずれにつながることがあります。完全な範囲外ではなく、対象区域の少し外側にずれる場合は、このような変換誤差も疑う必要があります。
高さの値や別の属性値が座標として混入することもあります。GeoJSONの座標配列では、3つ目の値として高さに相当する値が含まれる場合がありますが、地図表示や範囲確認で見るべき基本は最初の2値です。ところが、変換処理の設定を誤ると、標高、距離、管理番号、測点番号のような値が経度や緯度の位置に入ってしまうことがあります。この場合、座標の一部だけが極端な値になり、範囲外として現れます。元データの列順とGeoJSONの座標配列の対応を確認すると、列ずれの有無を見つけやすくなります。
ローカル座標の扱いも実務では重要です。工事現場や施設管理では、現場内の任意原点からの距離で位置を管理することがあります。このようなローカル座標は、現場内では便利ですが、そのままGeoJSONに入れても一般的な地図上の位置にはなりません。ローカル座標を使う場合は、原点、軸の向き、縮尺、回転、既知点との対応などを明確にし、必要に応じて地理座標へ変換する必要があります。変換条件が不明なままGeoJSON化すると、範囲外座標かどうかの判断自体が難しくなります。
投影座標や単位の混在を防ぐには、GeoJSONを作成する前の段階で、元データの座標系を一覧化しておくことが有効です。どのファイルがどの座標系で、単位は何か、経度緯度なのか平面座標なのか、ローカル座標なのかを整理します。複数のデータを結合する場合は、結合前に同じ座標系へ変換してからGeoJSON化します。範囲外座標の確認は、完成後の検査としても重要ですが、元データの前提整理をしておくことで、そもそもの混入を減らせます。
範囲外座標を見つけたときは、座標値を修正するだけでなく、なぜその値になったのかを追うことが大切です。手作業で1点だけ直しても、変換手順に誤りが残っていれば、次回更新時に同じ問題が再発します。座標系、単位、列順、変換条件、結合条件を確認し、範囲外が発生した工程を特定します。GeoJSONの使い方としては、表示できるファイルを作るだけでなく、再現性のある変換と確認の流れを持つことが実務上の安定につながります。
現地取得データと台帳・図面データの前提をそろえる
GeoJSONの範囲外座標は、データ形式だけの問題ではなく、現地取得データと台帳・図面データの前提の違いから生まれることがあります。現地で取得した座標は、その時点の測位環境、取得方法、記録設定、補正条件の影響を受けます。一方、台帳や図面の座標は、過去の測量成果、図化作業、管理上の区分、設計時の座標系などに基づいています。両者を同じGeoJSONにまとめる場合、前提が揃っていないと、片方だけが対象範囲から外れて見えることがあります。
現地取得データでは、測位精度のばらつきに注意が必要です。建物の近く、樹木の下、高架付近、谷地形、狭い道路などでは、取得した座標が実際の位置からずれることがあります。このずれが小さければ通常の確認で気づきにくいですが、対象区域が狭い場合には範囲外として検出されることがあります。たとえば敷地境界や道路区域の内外を厳密に確認したい場合、数メートルのずれでも範囲外候補になります。現地座標を扱うときは、取得時の精度や記録条件も確認材料に含める必要があります。
台帳データでは、管理上の位置と実際の現地位置が完全には一致しない場合があります。施設点や距離標点、管理境界、区間情報などは、台帳上の代表位置として登録されていることがあります。そのため、現地で取得した実測位置と台帳上の位置を重ねると、わずかな差が出ることがあります。この差をすべて誤りと判断すると、不要な修正が増えます。範囲外座標を見つける際は、対象データが実測位置なのか、代表位置なのか、図面上の整理位置なのかを確認することが大切です。
図面由来のデータでは、作図上の座標や縮尺の影響を受けることがあります。図面上では整って見える線や面でも、地理座標へ変換すると位置がずれることがあります。特に古い図面や複数回編集された図面では、基準点、縮尺、回転、原点の扱いが不明確なことがあります。このような図面データをGeoJSON化する場合、範囲外座標が出ても、単純な入力ミスではなく、図面の基準情報が不足している可能性があります。図面の作成経緯や変換条件を確認しないまま座標だけを直すと、他の部分との整合が崩れることがあります。
現地取得データと台帳・図面データを合わせるときは、確認の基準点を持つことが有効です。対象区域内で位置が信頼できる点をいくつか選び、それらがGeoJSON上で正しい位置に来ているかを確認します。基準点に相当するものは、明確な交点、境界点、構造物の角、既知の管理点、測量済みの点など、業務の性格に応じて選びます。複数の基準点が同じ方向にずれていれば、座標系や変換条件の問題が疑われます。特定の点だけがずれていれば、入力や取得時の個別問題の可能性が高くなります。
属性情報の整合も見逃せません。範囲外座標を見つけたとき、その地物の属性が対象区域に属しているかどうかを確認します。たとえば、別の工区、別の路線、別の施設群、過去年度の調査データが同じGeoJSONに混ざっていると、座標としては正しくても、今回の対象範囲からは外れていることがあります。この場合、座標を修正するのではなく、データの抽出条件や結合条件を見直す必要があります。範囲外という結果だけを見て座標値を変更すると、本来正しい別区域のデータを壊してしまうおそれがあります。
更新作業でも範囲外座標は発生しやすいです。既存のGeoJSONに新しい現地データを追加する際、旧データと新データの座標系や取得方法が違うと、一部だけがずれます。また、古い台帳を更新する際に、廃止済みの施設や対象外となった区間が残っていると、範囲外候補として検出されることがあります。このような場合、単に座標が外れているのではなく、データの世代管理や更新範囲の問題が含まれます。範囲外座標の確認は、位置の検査であると同時に、データ更新の整合確認でもあります。
現地取得データをGeoJSONに反映する運用では、取得時点から確認しやすい形で記録しておくことが大切です。取得日時、取得者、測位方法、対象物名、管理番号、現地メモなどが残っていれば、範囲外座標が見つかったときに原因を追いやすくなります。逆に、座標値だけが残っている状態では、その点が誤りなのか、正しいが対象外なのか、判断に時間がかかります。GeoJSONの品質を高めるには、座標そのものだけでなく、座標を説明する情報もそろえる必要があります。
まとめ
GeoJSONの範囲外座標を見つけるには、地図上の見た目だけに頼らず、座標値、対象範囲、地物構造、座標系、元データの前提を順番に確認することが大切です。まず、経度と緯度の順序が正しいか、数値範囲が地理座標として妥当か、小数点や列順に誤りがないかを確認します。次に、業務で扱う対象区域の外接範囲を決め、範囲外候補を抽出します。このとき、抽出された座標をすぐ誤りと決めつけず、関連施設、補助点、別区域データなどの可能性も含めて判断します。
点、線、面では、座標の入り方が異なります。点は座標そのものの範囲確認が中心ですが、線では途中の頂点の飛び、面では外周や内周の歪みを確認する必要があります。複数の線や面を含むデータでは、地物全体ではなく一部の座標列だけが範囲外になることもあります。GeoJSONの構造を理解し、地物の種類ごとに確認方法を変えることで、見落としを減らせます。
また、投影座標やローカル座標、単位の混在は、範囲外座標の大きな原因になります。座標値の桁が経度緯度らしくない場合や、対象区域から大きく外れる場合は、元データの座標系を確認する必要があります。変換手順や列の対応に問題があると、GeoJSONとしては読めても、位置としては使えないデータになります。修正は座標値だけでなく、変換条件や作業手順まで確認して行うことが重要です。
さらに、現地取得データと台帳・図面データを重ねる場合は、それぞれの作成目的や精度、基準の違いを意識する必要があります。現地の測位誤差、台帳上の代表位置、図面由来の変換条件、更新時期の違いなどが、範囲外座標として表れることがあります。座標が外れているように見えても、実際には対象外データが混ざっているだけの場合もあります。属性情報や取得記録とあわせて確認することで、座標修正、除外、再取得、変換見直しのどれを行うべきか判断しやすくなります。
GeoJSONは軽量で扱いやすい形式ですが、座標の前提が崩れると、地図表示、現地確認、台帳更新、関係者共有のすべてに影響します。範囲外座標の確認を作業の最後だけに置くのではなく、データ作成、変換、結合、更新の各段階に組み込むことで、ミスの早期発見につながります。特に現場で取得した位置情報をすぐに共有し、後からGeoJSONや台帳データとして活用したい場合は、取得時点の座標品質と記録の残し方が重要になります。
位置情報を現場で扱い、取得した座標を確認・共有・活用する流れを整えたい場合は、スマートフォンを使った高精度な位置取得と現場記録の運用を検討すると、GeoJSONにする前の段階から座標の信頼性を高めやすくなります。現地での座標取得からデータ活用までをスムーズにつなげたい方は、LRTK Phoneの活用も選択肢として確認してみてください。