top of page

GeoJSONをMapLibreで表示する前に整える設定5項目

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

著者: LRTKチーム

GeoJSONは、点、線、面といった地物を扱いやすい形式で表現できるため、Web地図や業務用の地図画面で広く使われています。MapLibreに読み込めば、測量成果、管理対象物、点検記録、施工範囲、台帳データなどを背景地図の上に重ねて確認できます。ただし、GeoJSONはファイルを読み込めば必ず意図どおりに表示されるものではありません。座標の前提、図形の作り方、属性の持たせ方、読み込み方法、表示スタイルが整っていないと、位置がずれる、描画が重い、クリックしても必要な情報が分からない、縮尺によって見え方が大きく変わるといった問題が起こります。


この記事では、GeoJSONをMapLibreで表示する前に整えておきたい設定を、実務担当者向けに5項目で整理します。単に画面に出せるかどうかではなく、現場確認、社内共有、維持管理、施工前後の比較まで見据えて、後から困りにくいGeoJSONの準備方法を解説します。


目次

GeoJSONを表示する前に前提をそろえる

座標系と位置の基準を確認する

ジオメトリの種類と形状品質を整える

属性情報と識別子を整理する

読み込み方法と表示スタイルを調整する

まとめ


GeoJSONを表示する前に前提をそろえる

GeoJSONをMapLibreで表示する前に、最初に確認したいのは、そのデータが何を表しているのかという前提です。GeoJSONは形式としてはシンプルですが、実務で扱うデータは、現地で測った点、図面から作成した線、管理台帳から変換した面、点検記録と紐づく位置情報など、作成経緯がさまざまです。同じGeoJSONという形式でも、目的や精度、更新頻度、属性の意味が異なれば、表示前に整えるべき内容も変わります。


たとえば、現地で取得した測位点や調査点から作成したGeoJSONであれば、地図上の位置精度、測定時刻、測定条件、使用した基準点などが重要になります。一方で、施設管理台帳から出力したGeoJSONであれば、識別番号、管理区分、更新日、担当部署などの属性が重要になります。施工範囲や調査範囲を示すGeoJSONであれば、面の境界が閉じているか、重なりがないか、図面上の範囲と地図上の範囲が大きく食い違っていないかを確認する必要があります。


この前提をあいまいにしたまま地図に載せると、見た目は表示できても、利用者が誤った判断をする原因になります。地図上に線が表示されている場合、それが実測線なのか、計画線なのか、概略位置なのか、管理上の参考線なのかが分からなければ、現場での判断には使いにくくなります。GeoJSONを表示する前には、そのデータが現況を示すものなのか、計画を示すものなのか、参考情報なのかを明確にしておくことが大切です。


次に、表示対象をどの縮尺で使うのかも整理します。広域の管理地図として見るだけなら、細かな点の密度や線の折れ点数は少なくても問題になりにくい場合があります。しかし、現場で構造物、境界、埋設物、施工位置などを確認する用途では、数メートルのずれでも大きな問題になることがあります。逆に、詳細な測量データをそのまま広域表示に使うと、ブラウザ上での描画が重くなり、読み込みに時間がかかることがあります。どの範囲を、どの精度感で、誰が、何の判断に使うのかを決めることで、GeoJSONに必要な整備レベルが見えてきます。


また、GeoJSONの中に複数種類の地物を混在させるかどうかも検討が必要です。点、線、面を1つのFeatureCollectionにまとめることは可能ですが、MapLibreでは表示用のレイヤを地物の種類や用途に応じて分けることが多くなります。たとえば、測点は点のレイヤ、道路中心線は線のレイヤ、施工範囲は面のレイヤとして扱えば、表示のオンオフ、色分け、クリック時の情報表示、更新作業がしやすくなります。反対に、同じ施設を構成する情報を一体で扱いたい場合は、1つのFeatureCollectionとしてまとめ、属性で分類できるようにする方法もあります。


GeoJSONを地図表示用に整える作業は、単なるファイル変換ではありません。表示目的に合わせて、データ構造、属性、精度、運用方法をそろえる作業です。最初に前提を決めておくことで、後工程の座標確認、形状チェック、属性設計、スタイル設定がぶれにくくなります。


座標系と位置の基準を確認する

GeoJSONで最も重要な確認項目の一つが、座標の扱いです。標準的なGeoJSONでは、座標は経度、緯度の順で表され、地理座標として扱う前提があります。MapLibreで背景地図に重ねる場合も、基本的にはこの前提に合うようにGeoJSONを準備します。元データが平面直角座標、任意座標、図面座標、緯度経度など、異なる基準で管理されている場合は、GeoJSONとして配信する前に、どの座標系からどの座標系へ変換したのかを確認する必要があります。


実務では、緯度、経度の順で出力されたデータや、X座標、Y座標の順で管理されたデータを、GeoJSONの経度、緯度の順と混同してしまうことがあります。数値だけを見ると似ているため、順番の違いに気づきにくいことがありますが、読み込み後にまったく別の場所へ表示される典型的な原因です。地図に表示する前に、座標値がどの順序で格納されているかを確認し、必要に応じて変換することが重要です。


元データが平面座標の場合は、Web地図で扱いやすい緯度経度へ変換する工程が必要になります。測量成果や設計図面で使われる座標は、地域ごとの座標系や工事基準点を前提としていることがあり、そのままGeoJSONのcoordinatesに入れても、MapLibre上で正しい位置に重ならない場合があります。座標値が数万、数十万といった単位で並んでいる場合は、緯度経度ではなく平面座標やローカル座標である可能性があります。その場合は、座標系の定義、原点、軸の向き、単位、変換方法を確認し、地図表示用の座標へ整える必要があります。


高さ情報の扱いも見落とされやすい部分です。GeoJSONの座標には、経度、緯度に続く3番目の値として高さや標高を含めることができます。ただし、通常の2次元地図表示では、その高さ値がそのまま立体表示やラベル表示に使われるとは限りません。現場管理では、平面位置だけでなく標高、設計高、出来形高が重要になることがあります。高さをポップアップ、ラベル、色分け、差分確認に使いたい場合は、座標配列に含めるだけでなく、propertiesの属性情報として高さを持たせる設計も検討すると扱いやすくなります。


さらに、座標の精度と丸め方にも注意が必要です。GeoJSONはテキスト形式のため、座標の小数桁を増やすほどファイルサイズは大きくなります。一方で、小数桁を減らしすぎると位置精度が落ちます。広域の概略表示であれば多少丸めても問題になりにくい場合がありますが、現場での測点確認や施工位置確認では、小数桁の削減が無視できない誤差につながることがあります。表示速度を優先して座標を簡略化する場合でも、そのデータをどの用途に使うのかを踏まえて、許容できる精度を決めることが必要です。


位置ずれを防ぐには、変換後のGeoJSONを必ず既知の基準点や背景地図と照合することが重要です。たとえば、現地で位置が分かっている構造物、道路交差点、境界杭、マンホール、既設設備などと重ねて確認します。数値上の変換が正しく見えても、座標系の選択、軸の向き、単位、元データの基準点の違いによって、実際にはずれていることがあります。特に、測量成果をWeb地図で共有する場合は、表示確認だけでなく、作成元の座標系、変換後の座標系、変換手順を記録しておくと、後から原因調査がしやすくなります。


GeoJSONを扱う実務では、表示できたことよりも、正しい場所に表示できていることが重要です。座標系、座標順、単位、高さ、丸め、変換履歴を整えることで、MapLibre上の表示の信頼性が大きく変わります。


ジオメトリの種類と形状品質を整える

GeoJSONでは、点、線、面、複数の点、複数の線、複数の面など、さまざまなジオメトリを表現できます。地図表示でトラブルを避けるには、まず表示したい対象に合ったジオメトリを選び、形状が正しく作られているかを確認することが大切です。見た目だけで判断すると、線で表すべきものを面で作っていたり、面で表すべき範囲が線のままになっていたりすることがあります。


点は、測点、設備位置、点検箇所、写真撮影位置、境界点、施工管理点などに向いています。点の表示では、重なりや密集が問題になりやすいため、属性による分類や表示縮尺の調整を考える必要があります。大量の点を一度に表示すると、地図が見づらくなるだけでなく、描画も重くなります。点の数が多い場合は、表示範囲に応じて読み込む、縮尺によって表示を切り替える、用途別にデータを分ける、必要に応じてクラスタリングを検討するなどの工夫が必要です。


線は、道路中心線、配管、電線、境界線、施工ライン、調査ルートなどに使われます。線のGeoJSONでは、折れ点の数と線の向きが重要です。折れ点が多すぎるとファイルサイズが大きくなり、描画負荷が上がります。逆に、簡略化しすぎると曲線や屈曲部の形が実態と変わってしまいます。また、線の向きに意味があるデータでは、始点と終点の順序も確認が必要です。流れの方向、測定の進行方向、施工順序などを表す場合、線の向きが逆になっていると、矢印表示や区間管理で誤解を招くことがあります。


面は、敷地、施工範囲、管理区域、規制範囲、土工範囲、調査対象エリアなどを表すときに使います。面のGeoJSONでは、外周や穴を構成するリングが閉じていること、自己交差がないこと、穴あき形状の扱いが意図どおりであることを確認する必要があります。面の境界が閉じていない場合や、線が交差している場合、地図上で塗りつぶしが崩れたり、意図しない範囲が表示されたりすることがあります。図面上では一見問題がなくても、GeoJSONに変換した段階で形状エラーが生じることがあるため、表示前のチェックは重要です。


また、複数の面が隣接するデータでは、重なりや隙間にも注意が必要です。管理区域や筆界、施工区画などでは、隣り合う面が接している必要がある場合があります。ところが、変換や編集の過程でわずかな隙間ができたり、面同士が重なったりすると、面積集計、選択処理、クリック判定に影響することがあります。単に塗りつぶして見えるだけでは不十分で、隣接関係や境界線の整合性まで確認しておくと安心です。


GeoJSONでは、1つのファイル内に異なるジオメトリを混在させることもできます。しかし、MapLibreの表示設定では、点、線、面ごとに使うレイヤタイプやスタイルが異なります。点にはcircleやsymbol、線にはline、面にはfillなどを使い分けるため、混在データをそのまま1つの表示設定で扱おうとすると、条件分岐が複雑になり、設定ミスが起きやすくなります。実務では、点、線、面を分けて管理するか、属性で種類を明確に分け、表示側でレイヤやフィルタを分けられるようにしておくと扱いやすくなります。


形状品質を整えるうえでは、不要な頂点や重複した地物の整理も重要です。図面変換や複数データの統合を行うと、同じ位置に同じような地物が重複して入ることがあります。表示上は気づきにくくても、クリック時に複数の情報が重なって出る、集計値が重複する、編集対象を誤るといった問題につながります。GeoJSONを公開または共有する前には、同一IDの重複、同一座標の重複、不要な中間点、極端に細かい線分などを確認しておきましょう。


地図表示は、データの形状エラーを完全に補正してくれるものではありません。むしろ、元データの不整合が表示結果として目に見える形で現れます。表示前にジオメトリの種類と形状品質を整えておくことで、地図上での見やすさだけでなく、検索、選択、集計、共有の精度も高められます。


属性情報と識別子を整理する

GeoJSONの価値は、地図上に形を表示できることだけではありません。各地物に属性情報を持たせることで、クリックしたときに詳細を表示したり、条件で色分けしたり、検索や絞り込みを行ったりできます。そのため、GeoJSONをMapLibreで表示する前には、propertiesの設計を整えておく必要があります。


属性情報でまず重要なのは、各地物を一意に識別できるIDです。IDがないGeoJSONでも表示はできますが、実務で使う場合は、更新、選択、編集、外部資料との照合が難しくなります。たとえば、点検箇所、設備、測点、施工範囲などを管理する場合、画面上でクリックした地物が台帳上のどのレコードに対応するのかを特定できなければなりません。表示用の名前だけでは、同じ名称や似た名称が存在したときに混乱します。内部管理用の識別子と、画面表示用の名称を分けて持たせると、運用しやすくなります。


MapLibreでホバー表示、選択状態、ハイライトなどを扱う場合は、Featureのidや、属性値をFeature IDとして使う設定も検討対象になります。propertiesの中に管理IDを入れておくだけで足りる画面もありますが、地物の状態を動的に切り替える設計では、表示側がどの地物を一意に指しているかが重要になります。後から機能を追加する可能性がある場合は、初期段階からIDの重複や欠落を避けておくと安全です。


次に、属性名の付け方を統一します。GeoJSONのpropertiesには自由に項目を入れられますが、自由度が高いぶん、命名がばらばらになりやすいです。同じ意味の項目が、ある地物ではname、別の地物ではlabel、さらに別の地物ではtitleのように分かれていると、表示側の設定が複雑になります。分類、名称、状態、更新日、備考、担当、測定値など、よく使う項目は名称を統一し、データ作成時のルールとして決めておくことが大切です。


値の形式もそろえる必要があります。日付であれば表記を統一し、数値であれば単位を明確にし、分類であれば選択肢を決めておくと、後から条件分岐や検索に使いやすくなります。たとえば、状態を表す属性に、完了、済、完、OKのような表記が混在していると、色分けや集計が正しくできません。管理上は同じ意味でも、文字列としては別物として扱われるためです。表示の前に、表記ゆれを整えることは非常に重要です。


数値属性を使う場合は、文字列として入っていないかも確認します。面積、延長、高さ、標高、差分、点検点数などを色分けや範囲判定に使う場合、数値として扱える形式になっている必要があります。見た目は数字でも、単位付きの文字列として入っていると、大小比較や連続的な色分けに使いにくくなります。画面に表示するための値と、計算や条件分岐に使う値を分ける設計も有効です。


属性情報には、利用者に見せる情報と、内部処理に使う情報があります。すべての属性をポップアップに表示すると、利用者にとって読みにくくなります。一方で、内部処理に必要なIDや分類コードを削除してしまうと、後から更新や連携が難しくなります。そのため、GeoJSONには必要な属性を保持しつつ、画面表示では見せる項目を選ぶという考え方が現実的です。地図上で表示するラベル、クリック時に表示する説明、検索に使う項目、色分けに使う項目を分けて整理しておくと、運用時の混乱を減らせます。


また、個人情報や機密情報の扱いにも注意が必要です。GeoJSONはテキスト形式で中身を確認しやすいため、ファイルに含まれる属性は利用者から見える可能性があります。地図画面上には表示していなくても、配信されたGeoJSON内に不要な情報が含まれていれば、閲覧者が開発者ツールや通信内容から確認できてしまう場合があります。公開用、社内用、現場用など、利用範囲に応じて属性を削る、匿名化する、詳細情報は別の管理システム側で持つといった対応が必要です。


属性情報を整えることは、単に見栄えを良くする作業ではありません。地図を業務で使うための土台作りです。IDがあり、項目名がそろい、値の形式が統一され、表示用と管理用の情報が整理されていれば、GeoJSONは単なる図形データではなく、検索、確認、報告、更新に使える実務データになります。


読み込み方法と表示スタイルを調整する

GeoJSONの座標、形状、属性が整ったら、次に考えるべきなのが読み込み方法と表示スタイルです。MapLibreでは、データをsourceとして追加し、そのsourceを参照するlayerで見た目を定義します。つまり、GeoJSONをsourceに追加しただけでは、地図上の表示として十分ではありません。点、線、面、ラベルなどの見せ方を、目的に合わせてlayer側で設計する必要があります。


まず確認したいのは、GeoJSONのファイルサイズです。GeoJSONは人が読めるテキスト形式である一方、地物数や座標点数が多いとファイルサイズが大きくなります。大きなファイルを一度に読み込むと、初期表示が遅くなり、画面操作も重くなることがあります。特に、現地調査点、細かな境界線、大量の設備データ、詳細な施工範囲などをそのまま表示すると、利用者が地図を開くたびに負荷がかかります。表示対象を用途別に分ける、必要な範囲だけ読み込む、細かすぎる形状を用途に応じて簡略化するなど、読み込み前の調整が重要です。


ただし、簡略化には注意が必要です。形状を軽くするために頂点を減らすと、線や面の形が変わります。広域での概要表示では問題がなくても、現場で境界や施工位置を確認する用途では、簡略化によって判断を誤る可能性があります。したがって、概要表示用の軽量データと、詳細確認用の高精度データを分ける方法が有効です。通常表示では軽いデータを使い、拡大時や詳細画面では精度の高いデータを表示する設計にすると、速度と正確性のバランスを取りやすくなります。


表示スタイルでは、地物の種類や状態がひと目で分かるように設計します。点であれば大きさ、色、アイコン、ラベルの出し方を調整します。線であれば太さ、色、破線、透過率を使い分けます。面であれば塗りつぶし色、境界線、透過率を調整します。ここで重要なのは、見た目の派手さではなく、業務上の判断に必要な情報が読み取りやすいことです。たとえば、施工前、施工中、施工後の状態を色で分ける場合は、利用者が迷わず意味を理解できる凡例やラベルを用意する必要があります。


ラベル表示も慎重に設定します。地図上にすべての名称を表示すると、縮尺によっては文字が重なり、かえって読みにくくなります。重要な地物だけにラベルを付ける、一定の拡大率以上で表示する、クリック時に詳細を出すなど、情報量を調整することが大切です。特に点データが密集している場合、常時ラベルを表示すると地図全体が文字で埋まってしまいます。利用者が地図を見る目的に合わせて、常時表示する情報と操作時に表示する情報を分けましょう。


クリックや選択時の動作も、実務では重要です。GeoJSONの地物をクリックしたときに、名称、ID、状態、更新日、関連メモなどを表示できると、地図が確認ツールとして使いやすくなります。ただし、表示する項目が多すぎると読みにくくなります。ポップアップや詳細パネルでは、最初に重要な情報を見せ、必要に応じて詳細へ進める構成が適しています。属性情報の整理と表示設計を連動させることで、利用者が現場や事務所で必要な情報にすばやくたどり着けます。


表示順にも注意が必要です。面、線、点を重ねる場合、面を上に描くと線や点が隠れてしまうことがあります。一般的には、背景となる面を下に置き、その上に線、さらに上に点やラベルを重ねると見やすくなります。面の塗りつぶしには透過を設定し、下の背景地図や他の地物が見えるようにすることも有効です。複数のレイヤを扱う場合は、利用者がオンオフできるようにすると、目的に応じた確認がしやすくなります。


更新頻度の高いGeoJSONでは、キャッシュや再読み込みの考え方も整理しておく必要があります。現場で測定した点をすぐに地図へ反映したい場合と、月に一度更新する管理区域を表示する場合では、読み込み設計が変わります。古いデータが表示され続けると、現場判断に影響します。更新日時を属性として持たせる、画面上に更新日を表示する、データの再取得タイミングを決めるなど、運用面の設定も重要です。


GeoJSONの表示設定は、データをきれいに見せるためだけでなく、業務の流れに合わせて使いやすくするための調整です。軽さ、正確さ、見やすさ、操作性、更新性のバランスを取ることで、地図表示は単なる閲覧画面から、現場判断を支える実務ツールへ近づきます。


まとめ

GeoJSONをMapLibreで扱う前には、読み込みコードを書くことよりも先に、データそのものを整えることが重要です。GeoJSONは柔軟で扱いやすい形式ですが、その自由度の高さゆえに、座標の前提、形状の品質、属性の整理、表示方法の設計が不十分でも、一見すると表示できてしまうことがあります。しかし、実務で問題になるのは、表示できるかどうかではなく、正しい位置に、正しい意味で、必要な速度と見やすさで表示できるかどうかです。


まず、GeoJSONが何を表すデータなのかを明確にします。現況、計画、参考、点検記録、施工範囲など、目的によって求められる精度や属性は変わります。次に、座標系、座標順、単位、高さ、丸め方を確認し、地図上で正しい位置に表示されるように整えます。そのうえで、点、線、面のジオメトリが用途に合っているか、形状に破綻や重複がないかを確認します。


さらに、属性情報と識別子を整理することで、地図上の地物を検索、選択、更新、台帳連携に使いやすくできます。ID、名称、分類、状態、更新日、数値項目などを統一しておくと、表示スタイルやクリック時の情報表示も安定します。そして最後に、ファイルサイズ、読み込み範囲、表示順、ラベル、色分け、更新タイミングを調整し、利用者が迷わず使える地図画面に仕上げます。


GeoJSONを活用する実務では、地図上に載せる前の準備が成果物の信頼性を左右します。特に、測量、施工管理、設備管理、点検、維持管理のように、位置の正確さと現場での確認性が求められる業務では、データ作成から表示までの流れを一体で考えることが欠かせません。GeoJSONを単なる表示用ファイルとして扱うのではなく、現地情報と業務判断をつなぐデータとして整備することが大切です。


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

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

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

 

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

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

bottom of page