[Python] 以folium製作臺灣百岳資訊地圖
Folium 可以將Python資料利用 Leaflet.js 呈現,主要用於視覺化地理資訊,而Leaflet.js是開源的JS數據庫,提供大多數常用的地圖繪製功能,簡單又好用。 首先要來個前置作業,先使用爬蟲從 中華民國山岳協會 取得了臺灣百岳的座標與標高。 import urllib from bs4 import BeautifulSoup request = urllib.request.urlopen('http://www.mountaineering.org.tw/tw/index.php/2015-09-13-14-48-49/2015-09-13-15-07-13').read() soup = BeautifulSoup(request, "html.parser") 但山岳協會提供的是二分帶T67的座標 ,所以還需pyproj這個轉換座標系統的interface將它轉換成經緯度。 from pyproj import Proj myProj = Proj("+proj=tmerc +ellps=aust_SA +lon_0=121 +x_0=250000 +k=0.9999 +units=m +no_defs") longt, lat = myProj(x, y, inverse=True) 將預先有的資料以pandas讀入。 import pandas data = pandas.read_csv("mount-data.txt", encoding="utf-8") (這裡指定讀取編碼使用utf-8,其實是try出來的,一開始遇上亂碼,還沒找到發生原因。) 建立一個map物件,將中心訂在經度23.770876、緯度120.934757的地方,zoom_start則是起始的地圖大小,tiles是地圖的樣式。 有10種樣式可以選擇,default為Open street map,我只是挑一個我喜歡的使用。 import folium mount_map = folium.Map([23.770876, 120.934757], zoom_start=8, tiles='Cartodb Positr...