「うちの家はここ、学校はここ、友達の家はここ」を地図に描けるんだ。本物の Google Map と同じ仕組みが、自分のパソコンで動くよ。「緯度・経度」が分かれば、世界中のどこでもピンを立てられる。
1. 緯度・経度って?
地球上の場所を表す2つの数字。 - 緯度(latitude)= 北極(90度)と南極(-90度)の間で、上下のどこにいるか - 経度(longitude)= イギリスのグリニッジ(0度)から見て、どれくらい東西にずれてるか 例:東京駅は 35.681236, 139.767125。「日本は北の方で、グリニッジから東に139度ずれてる」と分かる。
自分の家の緯度・経度を調べる
Google Map を開いて、自分の家を右クリック(スマホは長押し)→ 「この場所について」を見ると、上に2つの数字(35.xxx, 139.xxx)が出るよ。それが緯度・経度。
2. Folium で地図を描く
colab で実行
Python
# 地図を描くためのライブラリをインストール!pip install -q folium
import folium
# 地図の中心を東京駅にm = folium.Map(location=[35.681236, 139.767125], zoom_start=14)
# ピンを立てる場所たちspots = [ ("家", 35.6800, 139.7670, "blue"), ("学校", 35.6850, 139.7700, "red"), ("友達のA", 35.6790, 139.7720, "green"), ("友達のB", 35.6760, 139.7650, "orange"), ("公園", 35.6830, 139.7640, "purple"),]
for name, lat, lon, color in spots: folium.Marker( location=[lat, lon], popup=name, icon=folium.Icon(color=color), ).add_to(m)
# 地図を保存して表示m.save("my_map.html")m # Colab ならこれだけで地図がでる
3. 距離を計算してみる
「家から学校まで何メートル?」
Python
from math import radians, sin, cos, sqrt, atan2
def distance(lat1, lon1, lat2, lon2): """ハーバーサインの公式で距離を計算(メートル)""" R = 6371000 # 地球の半径(メートル) p1, p2 = radians(lat1), radians(lat2) dp = radians(lat2 - lat1) dl = radians(lon2 - lon1) a = sin(dp/2)**2 + cos(p1) * cos(p2) * sin(dl/2)**2 return 2 * R * atan2(sqrt(a), sqrt(1 - a))
home = (35.6800, 139.7670)school = (35.6850, 139.7700)print(f"家から学校まで: {distance(*home, *school):.0f} m")4. 自由研究:自分の通学路
自分の通学路をピンで全部描こう。家 → 信号 → コンビニ → 公園 → 校門。それぞれの距離も計算して、どこが「一番遠い区間」か見てみよう。
次回予告
次回(EP.12)は、学校の 宿題を Python で解こう。算数の文章題をプログラムで解く方法。
この記事の感想を教えてください
あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。