概要
活用コンテストに向けてSpresenseのGPSセンサから緯度・経度を取得し、誰でもブラウザからアクセスできるようにするために、今回はspresenseからデータを受信することを想定して、まず手始めにPythonで地図を描画することを目指し、使えるかどうかを事前に検証する。
環境構築
地図を描画するために必要なライブラリをインストールします。
pip install folium geopy
pip install osmium
-
folium
:地図描画用のPythonライブラリ -
geopy
:位置情報を取得・変換するためのライブラリ -
osmium
:OpenStreeMapのライブラリ
手順
今回作成するコードが、Google Mapに対して位置ずれを起こさないかどうかをまず検証する
今回の検証対象は、秋葉原にある千石電商とします。
コード
import folium
# 現在位置を手動で設定 (千石電商 秋葉原店の位置)
current_location = {"latitude": 35.69934034045612, "longitude":139.77023335500712}
# 地図を作成
m = folium.Map(location=[current_location["latitude"], current_location["longitude"]], zoom_start=15)
# 現在位置にピンを追加
folium.Marker(
[current_location["latitude"], current_location["longitude"]],
popup="現在位置",
icon=folium.Icon(color="red", icon="info-sign"),
).add_to(m)
# 地図を保存してブラウザで開く
m.save("map.html")
print("地図が map.html として保存されました。ブラウザで開いてください。")
実行結果
作成したプログラムを実行すると、map.htmlのファイルがローカルのフォルダに保存されます。
このファイルをダブルクリックするとブラウザが起動し、指定した緯度経度を表すピンが刺さっていることを確認することができます。
おわりに
今回はPythonを使って、指定した緯度経度を地図上に描画することができた。これを応用して、Spresenseで取得した位置情報をリアルタイムで描画できるようにしていきたいと思う。