先人に感謝
キーワード: OpenStreetMap, Python, overpy, 地図データダウンロード, ポイント, ライン, エリア, タグ
Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール: 別ページ »で説明
【サイト内の関連ページ】
Python のまとめ: 別ページ »にまとめ
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
Windows での マイクロソフト C++ ビルドツール (Build Tools) のインストール手順: 別ページ »で説明
※ Linux のときは,端末を開く(pyenvを使っているときは pip の実行に管理者権限を必要としない)
pip install --ignore-installed --upgrade overpy
バージョン番号が表示されれば OK
pip show overpy
※ GitHub からソースコードをダウンロードしてインストールしたい場合
起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」を選ぶ.「x64」は,64ビット版の意味である.
Visual Studio Community のインストールを行うことで, 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」もインストールされる.その手順は,別ページ »で説明
python -m pip install -U pip pip install git+https://github.com/DinoTools/python-overpy
エラーメッセージが出ていないことを確認
バージョン番号が表示されれば OK
pip show overpy
あとでデータをダウンロードするときのために,Google Map を使って緯度・経度を調べてみる
Python プログラムの実行
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
次の Python プログラムを実行
※さきほど調べた緯度と経度
(実行例)
lat = 34.4461 lon = 133.2315
OpenStreetMapの「ライン」のデータのうち,「highway」であるようなデータが欲しいとする. OpenStreetMap には,ポイントやラインやエリアには,「highway」のようなタグ付いている.
引き続き、次の Python プログラムを実行
type = 'highway'
※ OpenStreetMapもタイル地図だが,次のプログラムでは,最下位のレイヤ(もっとも詳細なレイヤ)からダウンロードが始まる
次の Python プログラムを実行
import overpy api = overpy.Overpass() result = api.query(""" way(%f, %f, %f, %f) [%s]; (._;>;); out body; """ % (lat - 0.01, lon - 0.01, lat + 0.01, lon + 0.01, type) ) for way in result.ways: print("Name: %s" % way.tags.get("name", "n/a")) print(" Highway: %s" % way.tags.get("highway", "n/a")) print(" Nodes:") for node in way.nodes: print(" Lat: %f, Lon: %f" % (node.lat, node.lon))
表示を確認.(道路がないようなところを緯度経度で指定していると表示は空になる). 道路のデータである.緯度経度が並んでいる.
次の Python プログラムを実行
result.ways
次の Python プログラムを実行
result.nodes
まとめ