App下載

Python怎么實(shí)現(xiàn)地圖可視化?folium介紹!

倒影年華 2021-07-17 10:16:53 瀏覽數(shù) (4183)
反饋

由很多基于地圖可視化的項(xiàng)目做得非常有趣或者實(shí)用,比如一些根據(jù)地理位置信息來(lái)統(tǒng)計(jì)周圍的人、自己的行走軌跡、地理區(qū)域的某項(xiàng)數(shù)據(jù)分布等。那么他們是怎么做到的呢?今天小編就來(lái)講講python怎么實(shí)現(xiàn)地圖可視化吧!

 地理數(shù)據(jù)是國(guó)家的保密項(xiàng)目之一,有時(shí)候無(wú)心的地理數(shù)據(jù)收集可能造成地理數(shù)據(jù)泄露,給國(guó)家?guī)?lái)安全威脅,在學(xué)習(xí)地理位置信息的使用的時(shí)候請(qǐng)注意數(shù)據(jù)的使用,盡量不要傳播一些特殊的數(shù)據(jù)(比如測(cè)距,地標(biāo)等數(shù)據(jù))。

folium的簡(jiǎn)介

用Python處理數(shù)據(jù),然后用Folium將它在Leaflet地圖上進(jìn)行可視化。Folium能夠?qū)⑼ㄟ^(guò)Python處理后的數(shù)據(jù)輕松地在交互式的Leaflet地圖上進(jìn)行可視化展示。它不單單可以在地圖上展示數(shù)據(jù)的分布圖,還可以使用Vincent/Vega在地圖上加以標(biāo)記。

這個(gè)開(kāi)源庫(kù)中有許多來(lái)自O(shè)penStreetMap、MapQuest Open、MapQuestOpen Aerial、Mapbox和Stamen的內(nèi)建地圖元件,而且支持使用Mapbox或Cloudmade的API密鑰來(lái)定制個(gè)性化的地圖元件。Folium支持GeoJSON和TopoJSON兩種文件格式的疊加,也可以將數(shù)據(jù)連接到這兩種文件格式的疊加層,最后可使用color-brewer配色方案創(chuàng)建分布圖。

Folium可以讓你用Python強(qiáng)大生態(tài)系統(tǒng)來(lái)處理數(shù)據(jù),然后用Leaflet地圖來(lái)展示。Folium內(nèi)置一些來(lái)自O(shè)penStreetMap、MapQuest Open、MapQuest Open Aerial、Mapbox和Stamen的地圖元件(tilesets),并且支持用Mapbox或者Cloudmade API keys來(lái)自定義地圖元件。Folium支持GeoJSON和TopJSON疊加(overlays),綁定數(shù)據(jù)來(lái)創(chuàng)造一個(gè)分級(jí)統(tǒng)計(jì)圖(Choropleth map)。但是,F(xiàn)olium庫(kù)繪制熱點(diǎn)圖的時(shí)候,需要聯(lián)網(wǎng)才可顯示。

1.安裝folium模塊

pip install folium

2.安裝jupyter

pip install jupyter

便于查看地圖

3.查看世界地圖

import folium
m = folium.Map() # 顯示地圖
m

顯示世界地圖

4.查看中國(guó)地圖

import folium
m = folium.Map(location=[30,100],zoom_start=3)
m
  • location 經(jīng)緯度,list 或者 tuple 格式,順序?yàn)?latitude(緯度), longitude(經(jīng)度)
  • zoom_start 縮放值,默認(rèn)為 10,值越大比例尺越小,地圖放大級(jí)別越大
  • tiles 顯示樣式,默認(rèn)*‘OpenStreetMap'*,也就是開(kāi)啟街道顯示
  • crs 地理坐標(biāo)參考系統(tǒng),默認(rèn)為"EPSG3857"

5.武漢市地圖

m = folium.Map(location=[30.6,114.4],zoom_start=8) # 武漢市地圖

武漢市地圖

修改樣式

m = folium.Map(location=[30.6,114.4],zoom_start=8,tiles='Stamen Toner')

武漢市地圖

m = folium.Map(location=[30.6,114.4],zoom_start=8,tiles='Stamen Terrain')

武漢市地圖

6.添加標(biāo)記

import folium
wuhan_map = folium.Map(location=[30.6,114.4],zoom_start=8)

# 添加標(biāo)記
folium.Marker(
    location=[30.6,114.3], # 位置
    popup='Wu Han City Marker', # 鼠標(biāo)點(diǎn)擊 彈出的說(shuō)明
    icon=folium.Icon(icon='cloud') # 圖標(biāo)樣式
).add_to(wuhan_map)

folium.Marker(
    location=[30.6,114.33],
    popup='Timberline Lodge',
    icon=folium.Icon(color='green')
).add_to(wuhan_map)

folium.Marker(
    location=[30.6,114.35],
    popup='Some Other Location',
    icon=folium.Icon(color='red', icon='info-sign')
).add_to(wuhan_map)
folium.Circle(  # 添加圓
    radius=200,
    location=(30.6,114.32),
    popup='The Waterfront',
    color='crimson',
    fill=False,
).add_to(wuhan_map)

folium.CircleMarker(    #添加藍(lán)色圓環(huán)
    location=(30.6,114.37),
    radius=50,
    popup='Laurelhurst Park',
    color='#3186cc',
    fill=True,
    fill_color='#3186cc'
).add_to(wuhan_map)

# 獲取點(diǎn)的經(jīng)緯度
# wuhan_map.add_child(folium.LatLngPopup())

# 動(dòng)態(tài)添加標(biāo)簽
wuhan_map.add_child(folium.ClickForMarker(popup='Waypoint'))

地圖標(biāo)記

7.查找武漢科技大學(xué)

import foliumposition = [30.4415, 114.2628] # 武科大的經(jīng)緯度school_mp = folium.Map(location=position,zoom_start=15)school_mp

武漢科技大學(xué)定位

8.未解決

? 彈出pop_up顯示圖片不會(huì)。

小結(jié)

到此這篇關(guān)于Python利用folium實(shí)現(xiàn)地圖可視化的文章就介紹到這了,更多Python相關(guān)學(xué)習(xí)知識(shí)和folium庫(kù)的使用細(xì)節(jié)等內(nèi)容請(qǐng)搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章。



0 人點(diǎn)贊