FoliumパッケージでGoogleマップをプロットする方法【Python】
Foliumは、さまざまな種類のLeafletマップを作成できる非常に強力なPythonライブラリです。Leaflet/Foliumで作成したマップはインタラクティブに操作できるため、ダッシュボード構築にも最適です。
インストール
Foliumのインストールはpipを使えば非常に簡単です。
$pip install folium
下のスクリーンショットのように、コンソール(cmd)で上記のコマンドを実行するだけで、pipがFolium本体と必要な依存パッケージをまとめてインストールしてくれます。

基本のマップを作成する
まずは最もシンプルな地図の表示例です。緯度・経度を指定し、ズームレベルやタイルの種類を設定してHTMLファイルとして保存します。
# ライブラリをインポート
import folium
# 緯度→経度の順で指定。zoom_startはズームレベル(数値が大きいほど拡大される)
mapOBJ = folium.Map(location=[17.3616, 78.4747], zoom_start=4, tiles='Stamen Terrain')
# Mapオブジェクトのsaveメソッドでマップをファイルに出力
mapOBJ.save('map2.html')出力結果

ケース2:GeoJsonデータの描画
次に、GeoJSON形式のデータをマップ上に描画する例を紹介します。ランダムに生成した座標データをMultiPointとして追加しています。
import folium
import os
from folium import features
import numpy as np
import pandas as pd
N = 1000
lons = +5 - np.random.normal(size=N)
lats = 48 - np.random.normal(size=N)
data = {
'type': 'FeatureCollection',
'features': [
{
'type': 'Feature',
'geometry': {
'type': 'MultiPoint',
'coordinates': [[lon, lat] for (lat, lon) in zip(lats, lons)],
},
'properties': {'prop0': 'value0'}
},
],
}
m = folium.Map([17.3616, 78.4747], zoom_start=10)
m.add_child(features.GeoJson(data))
m.save('Features.html')出力結果

ケース3:マーカー・アイコン・ポップアップ
特定の場所にピンを立てるにはMarkerを使用します。アイコンの色を変更したり、クリック時にポップアップを表示させることも可能です。
import folium
from folium import features
m = folium.Map([17.3616, 78.4747], zoom_start=15)
mk = features.Marker([17.3616, 78.4747])
pp = folium.Popup('Charminar')
ic = features.Icon(color='red')
mk.add_child(ic)
mk.add_child(pp)
m.add_child(mk)
m.save('Features_1.html')出力結果

ケース4:Vincentでグラフをポップアップに表示
ここでは新しいライブラリ「Vincent」を使用します。VincentはPythonのデータ構造(タプル、リスト、辞書、Pandas DataFrame)を受け取り、Vega可視化文法へ変換してくれるツールです。
Vincentもpipで簡単にインストールできます。
$pip install vincent
C:\WINDOWS\system32>pip install vincent Collecting vincent Downloading https://files.pythonhosted.org/packages/11/bf/a12ecaa21a2e376a16de67e09f64a38a4acd95e04e5dc35ad2f13a6f0bfd/vincent-0.4.4.tar.gz Requirement already satisfied: pandas in c:\python\python361\lib\site-packages (from vincent) (0.20.2) Requirement already satisfied: pytz >= 2011k in c:\python\python361\lib\site-packages (from pandas -> vincent) (2017.2) Requirement already satisfied: python-dateutil >= 2 in c:\python\python361\lib\site-packages (from pandas -> vincent) (2.6.0) Requirement already satisfied: numpy >= 1.7.0 in c:\python\python361\lib\site-packages (from pandas -> vincent) (1.16.0) Requirement already satisfied: six >= 1.5 in c:\python\python361\lib\site-packages (from python-dateutil -> pandas -> vincent) (1.10.0) Building wheels for collected packages: vincent Running setup.py bdist_wheel for vincent ... done Stored in directory: C:\Users\rajesh\AppData\Local\pip\Cache\wheels\4c\0d\8a\65f34c765c6094a71cce3e42a49a26533eef61695e9b505f03 Successfully built vincent Installing collected packages: vincent Successfully installed vincent-0.4.4
Vincentで生成した散布図を、マーカーのポップアップ内に埋め込むサンプルコードがこちらです。
import folium
from folium import features
import numpy as np
import json
import vincent
N = 100
multi_iter2 = {
'x': np.random.uniform(size=(N,)),
'y': np.random.uniform(size=(N,)),
}
scatter = vincent.Scatter(multi_iter2, iter_idx='x', height=100, width=200)
data = json.loads(scatter.to_json())
m = folium.Map([17.3616, 78.4747], zoom_start=10)
mk = features.Marker([17.3616, 78.4747])
p = folium.Popup('Charminar')
v = features.Vega(data, width='100%', height='100%')
mk.add_child(p)
p.add_child(v)
m.add_child(mk)
m.save('Features_2.html')出力結果

このようにFoliumを使えば、基本の地図表示からGeoJSONデータの可視化、マーカーやポップアップの活用、さらにはグラフの埋め込みまで、柔軟にインタラクティブなマップを構築できます。ダッシュボード開発などにもぜひ活用してみてください。
-
GoogleマップでCOVID-19感染者数を確認する方法
Googleは、人口10万人あたりの新型コロナウイルス感染症(COVID-19)新規陽性者数の7日間平均を表示できる新しい「COVIDレイヤー」をGoogleマップに追加しました。これにより、ユーザーは特定の地域や、旅行を検討している地域の感染状況をより正確に把握できるようになります。 さらに、感染者数が増加傾向にあるのか減少傾向にあるのかを示すラベルも表示され、色分けによって地域ごとの新規感染者数の密度がひと目でわかるようになっています。 Googleは公式ブログでこの新機能について発表しました。 新しいCOVIDレイヤーは9月30日にGoogleマップアプリで有効化されました。Google
-
Googleマップをオフラインで利用する方法【事前保存の手順と活用術】
Googleマップをオフラインで使えるようにしておくメリットはたくさんあります。地域によっては、わずか1GBのモバイルデータでもかなりの費用がかかることがありますし、ローミングSIMカードで海外旅行をする場合は、ダウンロード料金があっという間に膨らんでしまうこともあります。そんなときにおすすめなのが、Wi-Fiスポットで必要な範囲のGoogleマップだけを事前にダウンロードしておく方法です。これなら通信費を大幅に節約できます。以下の簡単なステップに従えば、Googleマップの地図と経路情報をオフラインで保存できます。1. オフライン地図の基準となる場所を決める無料Wi-Fiがあるからといって、