回の記事では、標高データの種類や概要について解説しました。今回は、日本国内で活用しやすい国土地理院 基盤地図情報 数値標高モデル(DEM)を使い、OpenStreetMap(OSM)のルートデータに標高情報を付与し、Web上で標高プロファイル付きルートを表示するまでの一連手順を詳しく解説します。
この内容は、QGISを使ったGIS初心者でも再現できるよう、データ取得からWebマップ活用までまとめました。
QGISとは?概要と入手方法
QGISの概要
QGIS(キュージーアイエス)は、オープンソース・無料で利用できる地理情報システム(GIS)ソフトウェアです。国際的に普及しており、日本でも防災・インフラ・観光・登山など幅広い分野で使われています。
主な用途
- ラスタ(DEM標高データ)とベクタ(道路・登山道等)データ統合
- 標高プロファイルや等高線の自動生成
- 3D表示や俯瞰図作成
- Webマップ用データ作成
QGISの入手方法

Download · QGIS Web Site
インストールは「Long Term Release(長期安定版)」を推奨します。OSごとにインストーラーが用意されています。
必要なデータの取得
国土地理院DEM(基盤地図情報 数値標高モデル)
誘導ページ
- 範囲を選択して5mまたは10mメッシュ(XML/GML形式)をダウンロード。
- 都市部は5m、郊外は10mが推奨です。
OpenStreetMapのルート・道路データ
▶ Overpass Turbo :範囲指定・道路種別指定が可能。
▶ Geofabrik :都道府県単位など広域データ(PBF形式)。
GeoJSONまたはShapefile形式で取得し、QGISへ読み込みます。
QGISによるDEM → OSMへの標高付与手順
- DEM(GML形式)をGeoTIFFへ変換
・QGISでGML
ファイルを読み込み。
・「ラスタ → ラスタデータセット変換」でGeoTIFF形式へエクスポート。
・座標系はEPSG:4326(WGS84) に変換統一。
これにより、他ツールやWebマップでも扱いやすくなります。 - OSMルートへの標高付与
・OSMから取得した登山道や道路のルートをQGISへ読み込み(GeoJSON等)。
・DEM(GeoTIFF)を読み込み。
・「ベクタ → ラスタ → ラスタ値抽出(サンプリング)」で標高値(Z座標)をルート上各頂点に付与。
・出力をGeoJSON形式とし、Z値(標高)を保持。 - GeoJSONの出力イメージ
このZ座標(3番目の数値)が標高(単位:m)です。{ "type": "FeatureCollection", "features": [{ "type": "Feature", "properties": {}, "geometry": { "type": "LineString", "coordinates": [ [139.6917, 35.6895, 123], [139.6927, 35.6905, 135], [139.6937, 35.6915, 140] ] } }] }
Webマップでの標高プロファイル表示【Leafletサンプル】
使用ライブラリ(CDN)
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<link rel="stylesheet" href="https://unpkg.com/leaflet-elevation@0.0.4/dist/leaflet-elevation.min.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://unpkg.com/d3@5.7.0/dist/d3.min.js"></script>
<script src="https://unpkg.com/leaflet-elevation@0.0.4/dist/leaflet-elevation.min.js"></script>
地図+標高プロファイル表示サンプル
<div id="map" style="height: 500px;"></div>
<script>
const map = L.map('map').setView([35.6895, 139.6917], 12);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
const elevation = L.control.elevation({
theme: "steelblue-theme",
height: 125,
detached: true
}).addTo(map);
fetch('route_with_elevation.geojson')
.then(response => response.json())
.then(geojson => {
L.geoJSON(geojson, {
onEachFeature: elevation.addData.bind(elevation)
}).addTo(map);
});
</script>
これで、ルート上に標高プロファイル(距離 vs 標高)が動的に表示され、マウスオーバーで該当地点がハイライトされます。
完成イメージと活用例
活用例
用途 | 入手情報 | 備考 |
---|---|---|
登山・サイクリング | OSMルート+国土地理院DEM | 距離・標高プロファイル |
ハザードマップ | DEM+道路高低差 | 洪水・土砂災害分析 |
景観・観光 | QGIS 3D表示・Blender | 俯瞰図や3Dビジュアル化 |
防災教育 | 標高理解・傾斜確認 | 子供向け教材にも活用可能 |
表示結果イメージ
- OSM地図上にルート表示
- 下部に標高プロファイル(距離 vs 標高)
- マウスオーバーでルートと連携表示
関連リンクまとめ
内容 | URL |
---|---|
QGIS | https://qgis.org/ja/site/ |
国土地理院DEM | https://fgd.gsi.go.jp/download/menu.php |
OSM取得 | https://overpass-turbo.eu/ |
Blender-OSM | https://gumroad.com/l/blender-osm |
Leaflet | https://leafletjs.com/ |
Leaflet-Elevation | https://github.com/MrMufflon/Leaflet.Elevation |
コメント