OpenStreetMap

OpenStreetMapに標高データを組み込む – 標高データの概要とデータについて理解を深める

この記事は約5分で読めます。
スポンサーリンク

OpenStreetMap(以下OSM)は、ユーザー主導で自由に編集・利用できる地図データとして非常に優れています。しかし、登山やハイキング、サイクリングといったアウトドア用途のルート検索では「標高情報」が欠落しているため、急勾配や山岳地域の経路選定に必要な高度差を考慮できず、推奨できません。そこで本記事では、OSMに標高データを組み込むための概要解説と「自前でデータを取得・組み込む」方法をステップバイステップでご紹介します。

スポンサーリンク

標高データAPIの現状と課題

インターネット上には無料で利用できる標高データAPIがいくつか存在します。代表的なものを以下に挙げます(※APIリクエスト制限や有料プランへの誘導が多い点にご留意ください)。

  1. Google Maps Elevation API
    • 無料枠あり。ただし1日あたり2,500リクエストまで。超過時は課金。
  2. Open-Elevation API
    • 完全無料。ただしリクエスト遅延、運営不安定の報告あり。
  3. Mapbox Terrain-RGB
    • 無料枠あり。高精度だが、商用利用ではプラン契約必須。
  4. USGS Elevation Point Query Service
    • アメリカ国内限定。無料だが日本国内では未対応。
  5. OpenTopography
    • 無料プランあり。リクエスト制限・APIキー取得が必要。

これらのAPIを利用すると手軽ですが、多くが利用規約やリクエスト制限に縛られ、継続運用コストや安定性に課題があります。そこで本記事では、API依存せず、自ら標高データを取得しOSMに組み込む手法を最終目標とします。

標高データの代表的提供元とその取得方法

国内における最も信頼性が高い標高データ提供元は国土地理院(GSI)の「基盤地図情報 数値標高モデル(DEM)」です。以下、主要な提供元との比較と、国土地理院を選ぶ理由をまとめます。

提供元データ精度利用条件メリットデメリット
Google Maps Elevation API高精度無料枠制限、商用利用課金開発者向けSDK豊富、信頼性高いリクエスト制限、課金体系が複雑
Open-Elevation API中精度完全無料APIキー不要、シンプル遅延・メンテ不安
Mapbox Terrain-RGB高精度無料枠制限、商用利用課金カラーマップで可視化容易ライセンス条件厳格
国土地理院 DEM1m/5m/10m完全無料、商用・非商用問わず可日本全国を公的機関が提供、最新データデータサイズ大、取り扱いが煩雑
OpenTopography可変無料枠制限、APIキー必要多様なフォーマット対応日本国内利用時やや不便

国土地理院を選ぶ理由

  • 公的機関提供
    データの信頼性・正確性が高い
  • ライセンス自由度
    商用・非商用問わず再配布や加工が可能
  • 更新頻度
    最新の標高データが定期的に公開

国土地理院データ取得の手順

以下の手順で「基盤地図情報ダウンロードサービス」から数値標高モデルを入手します。

基盤地図情報 ダウンロードサービス

  1. ブラウザで「基盤地図情報ダウンロードサービス」
    https://service.gsi.go.jp/kiban/app/)にアクセス。
  2. 「基盤地図情報」の一覧から「数値標高モデル」を選択し移動。
  3. データ形式として1mメッシュ5mメッシュ10mメッシュを選択可能。
    • ※本記事ではバランスの取れた5mメッシュを選択します。
  4. 地図上で埼玉県所沢市周辺を拡大し、スケールを2,000ピクセル程度に設定。
    タイル番号「533953」をクリックしてダウンロードリストに追加。
  5. 「ダウンロード・解凍」ボタンを押下し、XML形式データ(100ファイル)が取得できることを確認。
  6. ダウンロードした100ファイルの中から「FG-GML-5339-53-01-DEM5A-20250214.xml」をテキストエディタで開く。
  7. <gml:tupleList>要素を探すと、33750個の標高データが並ぶリストが存在。

<gml:tupleList>のデータ構造と意味

<gml:tupleList>には、5mメッシュの各格子点に対応する標高値が「空白区切り」の数値として格納されています。33750という数字は、縦225点 × 横150点のグリッドに相当し、以下のように配列されています。

  • 並び順
    1行目の左上から右方向に150点分、
    続いて2行目の左端から右方向に150点分、
    …を繰り返して225行分。
  • 解釈例
    • 最初の数値=タイル左上の標高(m)
    • 150番目の数値=タイル上辺の右端標高
    • 151番目=2行目左端の標高

5mメッシュタイルの面積計算

5mメッシュ1格子の面積:5m × 5m = 25㎡
タイル全体の格子数:33750点
→ タイル面積 = 25㎡ × 33750 = 843,750㎡(約0.844km²)

100ファイル分を用いると、所沢市を含むタイル群の合計面積を算出できます。
(例:東京多摩地域全体をカバーするエリアなど応用可能)

メッシュ解像度とサーバ要件

1mメッシュ

  • データ量は5mメッシュの約25倍(225×5=1125行、150×5=750列→843,750点)
  • 高性能なストレージ・メモリ・CPUが必須

5mメッシュ

  • バランス良く用途が多いが、標高解析が多岐にわたる場合は尚更高性能環境が望ましい

10mメッシュ

  • データ量はさらに軽量で、まずはこちらで運用実績を積み、パフォーマンス確認をおすすめします
  • 次のステップアップとして5mメッシュ導入を検討

まとめ

本記事では、OSMに標高データを組み込むための前提知識と、国土地理院を活用したデータ取得手順、データ構造の解説、面積計算例、解像度別の運用提案までをご紹介しました。次回以降では、実際に取得したXMLデータをGeoJSONやタイル形式に変換し、Leaflet.js上で可視化するステップに進みます。

スポンサーリンク
OpenStreetMap
フォローしてね
スポンサーリンク

コメント

タイトルとURLをコピーしました