プログラミング開発

【Python】位置情報(緯度・経度)を可視化する方法(答えはfoliumライブラリ)

Pythonで位置情報を可視化したいけど、GISの知識はないし、簡単にできる方法を知りたい。何か良い方法はないかな。。

こんな悩みにお答えします。

実は、特別な知識やスキルが無くても簡単に位置情報を可視化することができます。

なぜなら、foliumというPythonライブラリを用いることで直感的なコーディングで実装できるからです。

 

今回は、foliumで位置情報を可視化する方法をご紹介します。

この記事を読み終えると、あなたは位置情報を自由に可視化することができるようになります。1回目の今回は、foliumの基本的な操作を中心にご説明します。

 

本記事の内容
・foliumで位置情報を可視化する方法
   ・地図の表示、保存
   ・多様なマーカーの表示
ひよこ
ひよこ

実は、位置情報を扱う方法はいくつかあります。主にGIS(地理情報システム)に関するものが多いでしょう。基本的に位置情報を扱う場合には、.shpや.gmlなどのファイルを用いる必要があり、初心者の方にはハードルが高い側面があります。しかし今回ご紹介するfoliumではそのような予備知識は一切不要で、位置情報を可視化することができます。

Pythonを学べるおすすめのプログラミングスクール
1. Aidemy
・・・AIエンジニアとしてのスキルを身に付けたい。その延長で就職、転職できたら嬉しい方におすすめ。
2.侍エンジニア塾
・・・基礎力と即戦力を身に付けられる、満足度No.1スクール
3.
TechAcademy
・・・副業に向けてスキルアップしたい。フリーランスなどを目指している方向け。
4
. AIジョブカレッジ
・・・コスパ良く、質の高い講座を受けたい方におすすめ。

 

本記事の信頼性

ひよこ
ひよこ

私は、大学時代にプログラミングを学び、PHPなどのWeb系言語からAIに用いられるPythonまで幅広く経験してきました。

現在はデータサイエンティストとして大企業で活動しています。

また今ではほぼ不労所得として月10万円以上の収益を継続的に達成しています。

 

 

1. folium

foliumLeafletを利用しインタラクティブな地図を作成できるPythonライブラリです。

Leafletとは
ブラウザベースで、モバイルフレンドリーなインタラクティブ地図のための JavaScript ライブラリ。

foliumでは、緯度・経度さえ用意すれば地図上にマーカーを立てることができ、アイコンや色まで思い通りに変えることができます。

Pythonはデータの扱いに長けており、pandasやnumpyなどの数値計算ライブラリと組み合わせて利用することで自由度の高い、あなただけの地図を作成することができるでしょう。

a. インストール方法

foliumはpipを用いて簡単にインストールすることができます。

pip install folium

 

無事インストールが終わったら、Pythonをたたいてインストールできていることを確認してみましょう。

import folium
print(folium.__version__)

#実行結果
0.12.1

エラーが出なければ問題なし!これで、foliumを使う準備は万端です!

 

2. 実行環境

以降、実際にコーディングしていく上で、実行環境を記載いたします。

  • Windows10
  • Python:3.6.4
  • folium:0.12.1

 

3. foliumの基本的な使い方

ここから、foliumの基本的な使い方をご紹介します。

a. 地図の表示

まずはシンプルな地図の表示です。ここでは渋谷(緯度:35.658034°、経度:139.701636°)を例にします。

map = folium.Map([35.658034, 139.701636], tiles="OpenStreetMap", zoom_start=16)

 

引数tilesでは、地図のデザインを変更することができます。
・OpenStreetMap(デフォルトはこちら)
・Stamen Terrain
・cartodbdark_matter

Stamen Terrain

cartodbdark_matter

 

また、引数zoom_startでは、初期の地図拡大率を変更できます。値の範囲は以下のとおりです。
1(ズームアウト)~20(ズームイン)

今回は16で設定しているため、通りや坂の名前まで表示されています。

 

b. 地図の保存

上で表示した地図をhtml形式で保存していきます。

map.save("basemap.html")

“basemap”の部分は自由に変更可能です。

これで、Pythonを実行したディレクトリ(フォルダ)にhtmlファイルが生成されます。

 

c. マーカーのプロット

ここから、地図上にマーカーをプロットしていきます。

#渋谷ヒカリエ
folium.Marker(location=[35.65931329218629,139.7037205398187]).add_to(map)

また、複数のマーカーをプロットする際にはfolium.Markerを繋げることでプロット可能です。

#渋谷ヒカリエ
folium.Marker(location=[35.65931329218629,139.7037205398187]).add_to(map)
#渋谷109
folium.Marker(location=[35.65978938550285, 139.6987164486077]).add_to(map)

 

ここからさらに以下の引数を変更可能。

引数引数の値
ポップアップ
:popup
文字列を入力
マーカーの色
:color
[‘red’, ‘blue’, ‘green’, ‘purple’, ‘orange’, ‘darkred’, ’lightred’, ‘beige’, ‘darkblue’, ‘darkgreen’, ‘cadetblue’, ‘darkpurple’, ‘white’, ‘pink’, ‘lightblue’, ‘lightgreen’, ‘gray’, ‘black’, ‘lightgray’]
マーカーのアイコン
:icon
アイコンはこちらから選択可
マーカーのアイコンの色
:icon_color
恐らくよくあるカラーコードで変更可(#000000など)

例は以下のとおり。

folium.Marker(
     location = [35.65931329218629, 139.7037205398187]
     ,popup="渋谷ヒカリエ"
     ,icon=folium.Icon(icon="tower", icon_color='#0040ff', color="pink")
).add_to(map)

 

d. サークルマーカー

マーカーにも種類があり、上記に加えてサークルマーカーを表示させることができます。ここでは3種類のパターンを図示します。

#渋谷マークシティ
folium.Circle(
   location = [35.658313794775594, 139.69803209774034]
   , radius = 40 #地図の倍率を変更するとサークルの大きさも変わる
   , color = "red"
   , fill = True #サークル内カラーあり
).add_to(map)

#渋谷ストリーム
folium.Circle(
   location = [35.657391159206185, 139.70238285106242]
   , radius = 50 #地図の倍率を変更するとサークルの大きさも変わる
   , color = "blue"
   , fill = False #サークル内カラーなし
).add_to(map)

#渋谷ロフト
folium.CircleMarker(
   location = [35.66117466453635, 139.69972349407757]
   , radius=60 #地図の倍率を変更してもサークルのサイズが変わらない
   , popup = "渋谷ロフト"
   , color="#f9f94e"
   , fill=True
   , fill_color="#cef58e"
).add_to(map)

 

ひよこ
ひよこ

痒い所に手が届くように、あなたの自由に可視化をカスタマイズできます!

 

 

5. まとめ

今回は、foliumで位置情報を可視化する方法をご紹介しました。

  • 地図の表示
  • 地図の保存
  • (サークル)マーカーのプロット

foliumライブラリを利用することで、Pythonで簡単に位置情報の可視化を行うことができます。マーカーのカスタマイズなどあなただけの地図を作成しましょう。

foliumはまだまだ奥の深いライブラリです。現在第2弾3弾と内容を検討しておりますのでそちらもぜひご覧ください。

 

 

 

本ブログでは、株式やプログラミングに関する記事を投稿しています。

プログラミング(Python)を学びたい方におすすめの書籍やプログラミングスクール、おすすめの学習方法などをご紹介しておりますのでぜひご覧ください。

独学で挫折してしまう方は、プログラミングスクールという方法がおすすめです。

私の一押しは『TechAcademy』です。

質問することですぐに分からないところをクリアにできますし、進捗をサポートしてくれるため確実に成長することができます。

無料相談を実施しているため、まずは話を聞いてあなたのスタイルに合っているかどうか確認してみるのが良いと思います。

スキルアップを目指したい方におすすめのオンライン学習サービス

 

コメント

タイトルとURLをコピーしました