PythonだとCUIな処理のイメージが強いですが、
ビジュアライズでも強力なモジュールがそろっています。
例えば地理情報の処理では、
foliumというモジュールが便利です。
foliumの導入
定番ですが、pipで
pip install folium
foliumの使い方
foliumは緯度経度から地図上にマーカーをマッピングできます。
今回はまず、住所から緯度経度を取得します。
GeocodingというサイトのAPIを使うと、
住所から緯度経度をXMLで取得可能です。
import urllib import lxml.html area_address = "対象の住所" area_name = "対象の名前" url = "http://www.geocoding.jp/api/?q=" html = urllib.urlopen(url + address).read() dom = lxml.html.fromstring(html) lat = float(dom.xpath("//lat")[0].text) lng = float(dom.xpath("//lng")[0].text)
習得した緯度経度をfoliumを用いて、
マーカーが振られたHTMLを出力します。
import folium loc = [lat,lng] # foliumのオブジェクトを作成 # 中心の緯度経度と、大きさを指定 map_obj = folium.Map(location=loc,zoom_start=15) # 先ほどのオブジェクトに指定した緯度経度のマーカーを立てる map_obj.simple_marker(location=loc,popup=area_name) # HTMLとして出力 map_obj.create_map(path="output.html")
folium.Mapにtiles引数で以下を与えると
以下の様な種類に変更することが可能です。
Stamen Terrain http://maps.stamen.com/terrain/#12/37.7707/-122.3783
Stamen Toner http://maps.stamen.com/toner/#12/37.7707/-122.3783
などなど。
他にもマーカーの種類を変えたり、
コロプレス地図を作成することが可能です。