Pythonで地図上に位置情報をプロットする方法について

Pythonとマップ,イメージ

AI実装検定のご案内

目次

必要なライブラリのインストール(Colab用)

# Colab環境では必要に応じてインストール
!pip install folium geopy plotly

foliumで緯度・経度をプロットする

import folium
from IPython.display import HTML

# 東京駅を中心に地図を作成
map_tokyo = folium.Map(location=[35.681236, 139.767125], zoom_start=14)

# マーカーを追加
folium.Marker(
    location=[35.681236, 139.767125],
    popup="東京駅",
    tooltip="クリックで詳細表示"
).add_to(map_tokyo)

# Colab上で地図を表示
HTML(map_tokyo._repr_html_())

複数の位置情報をプロットする(リスト → 地図)

locations = [
    {"name": "東京駅", "lat": 35.681236, "lon": 139.767125},
    {"name": "渋谷駅", "lat": 35.658034, "lon": 139.701636},
    {"name": "新宿駅", "lat": 35.690921, "lon": 139.700257}
]

# 地図を初期化
map_tokyo = folium.Map(location=[35.68, 139.76], zoom_start=13)

# 各地点にマーカーを追加
for loc in locations:
    folium.Marker(
        location=[loc["lat"], loc["lon"]],
        popup=loc["name"]
    ).add_to(map_tokyo)

HTML(map_tokyo._repr_html_())

geopyで住所から緯度・経度を取得(ジオコーディング)

from geopy.geocoders import Nominatim

# User Agent を設定(必須)
geolocator = Nominatim(user_agent="colab_map_demo")
location = geolocator.geocode("東京タワー")

print(f"住所: 東京タワー")
print(f"緯度: {location.latitude}, 経度: {location.longitude}")

geopy + foliumで住所を地図上に表示

# 地図を初期化
map_tokyo = folium.Map(location=[location.latitude, location.longitude], zoom_start=16)

# マーカー追加
folium.Marker(
    location=[location.latitude, location.longitude],
    popup="東京タワー"
).add_to(map_tokyo)

HTML(map_tokyo._repr_html_())

Plotly Expressで位置情報をプロット(Colabでも動作)

import plotly.express as px
import pandas as pd

# データフレームに都市名・緯度・経度を格納
df = pd.DataFrame({
    '都市': ['東京', '大阪', '福岡'],
    'lat': [35.681236, 34.693738, 33.590355],
    'lon': [139.767125, 135.502165, 130.401716]
})

# 地図上にマーカーをプロット
fig = px.scatter_mapbox(df,
                        lat="lat",
                        lon="lon",
                        hover_name="都市",
                        zoom=4,
                        height=500)

# 地図スタイルの指定(OpenStreetMapを使用)
fig.update_layout(mapbox_style="open-street-map")

# Colabで表示
fig.show()

Colabでの地図可視化の注意点

項目内容
folium表示HTML(map._repr_html_()) を使う(Jupyterでの .save() は不要)
geopy制限無料APIのため、アクセス頻度に注意(1秒に1回以下)
plotly表示Colabに対応済(.show()で表示可)
HTML保存map.save("map.html") でダウンロードも可能

まとめ

Python,イメージ
やりたいこと使用ライブラリ
緯度経度を地図で表示folium
住所から緯度経度に変換geopy
複数地点を視覚的にプロットfolium / plotly.express
Webアプリや分析レポートに埋め込みたいfolium(HTML保存)または Plotly

以上、Pythonで地図上に位置情報をプロットする方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次