GIS奮闘記

現役GISエンジニアの技術紹介ブログ。主にPythonを使用。

スポンサーリンク

Pythonで国土地理院の標高API を使ってみよう!

さて、本日はPythonで国土地理院の標高API を使ってみようと思います。

標高API とは

緯度経度を送るとその地点の標高を返してくれるサービス。この仕組みを利用すれば、WEBサイト上の地図でクリックした地点の標高を取得したりすることができます。こんな便利なものを提供していただけるなんて、本当にありがたいですね。

仕様

地理院地図|標高APIをご参照ください。すごく簡単に使えますね。

例えば、このようなリクエストを投げると
http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?lon=140.08531&lat=36.103543&outtype=JSON

このような結果が返ってきます。
f:id:sanvarie:20190713193538p:plain

「elevation」が標高ですね。

「hsrc」は標高データのデータソースみたいです。今回はこの値は無視します。

実行環境

Windows10(64bit)
Python3.6.5
Jupyter Notebook

使用する緯度経度

緯度: 35.678601
経度: 139.740286

ここがどこかといいますと永田町駅ですね。

f:id:sanvarie:20190713194234p:plain

サンプルコード

永田町駅の標高を取得するサンプルです。

import requests

lat = 35.678601  # 緯度
lon = 139.740286 # 経度

url = "http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php" \
       "?lon=%s&lat=%s&outtype=%s" %(lon, lat, "JSON")

resp = requests.get(url, timeout=10)
data = resp.json()

print(data["elevation"])


ものすごく簡単にできました。結果は29.2m ですね。
f:id:sanvarie:20190713194753p:plain

取得結果が正しいか地理院地図を使用して確かめます。
f:id:sanvarie:20190713195814p:plain

29.2m としっかり表示されていますね。素晴らしい!
f:id:sanvarie:20190713195859p:plain

簡単に使用できてこんな有益な情報が取得できるなんて本当にうれしい限りです。ぜひこれを利用して何か便利なものを作ってみたいですね。