Python如何實現(xiàn)folium交互地圖

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Python如何實現(xiàn)folium交互地圖,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司專注于海晏企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。海晏網(wǎng)站建設(shè)公司,為海晏等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

leftlet給R語言提供了很好用的交互式動態(tài)地圖接口,其在Python中得API接口包名為folium(不知道包作者為何這樣起名字,和leaflet已經(jīng)扯不上關(guān)系了),可以滿足我們平時常用的熱力圖、填充地圖、路徑圖、散點標(biāo)記等高頻可視化場景。

主要介紹其在point、line、polygon這三個地理信息場景下得應(yīng)用:

import pandas as pd
import numpy as np
import os
import folium
from folium import plugins
import webbrowser
import geopandas as gp

Point:

full = pd.read_excel("D:/Python/File/Cities2015.xlsx")
full = full.dropna()

默認情況下folium.Marker函數(shù)用于在空間范圍內(nèi)標(biāo)記點,點得樣式是雨滴形狀,但是也可以使用folium.RegularPolygonMarker函數(shù)來自定義點樣式:

schools_map = folium.Map(location=[full['lat'].mean(), full['lon'].mean()], zoom_start=10)
marker_cluster = plugins.MarkerCluster().add_to(schools_map)for name,row in full.iterrows():
     folium.Marker([row["lat"], row["lon"]], popup="{0}:{1}".format(row["cities"], row["GDP"])).add_to(marker_cluster)    
#folium.RegularPolygonMarker([row["lat"], row["lon"]], popup="{0}:{1}".format(row["cities"], row["GDP"]),number_of_sides=10,radius=5).add_to(marker_cluster)

display(schools_map)
#schools_map.save('schools_map.html')
#webbrowser.open('schools_map.html')

Python如何實現(xiàn)folium交互地圖
Python如何實現(xiàn)folium交互地圖

display用于在編輯器內(nèi)展示交互地圖,save方法可以將交互地圖以html文件得形式保存至本地磁盤,webbrowser.open方法可以調(diào)用默認瀏覽器打開本地html格式的交互地圖。

polygon:

因為leaflet使用的在線地圖并不開放地址匹配功能,也就意味著我們無法通過直接輸入行政區(qū)名稱來獲取行政區(qū)劃邊界,所以在制作填充地圖時,仍然需要我們構(gòu)建本地素材。

mydata   = pd.read_csv("D:/R/rstudy/Province/geshengzhibiao.csv", encoding = 'gb18030')
china_map = gp.GeoDataFrame.from_file("D:/R/rstudy/CHN_adm/bou2_4p.shp", encoding = 'gb18030')
#china_map = gp.GeoDataFrame.from_file("D:/R/mapdata/State/china.geojson", encoding = 'gb18030')

China_map = folium.Map(location=[35,120], zoom_start=4) China_map.choropleth( geo_data=open('D:/R/mapdata/State/china.geojson',encoding = 'utf-8').read(), data=mydata, columns=['province', 'zhibiao'], key_on= 'feature.properties.name', fill_color='YlGn', fill_opacity=0.7, line_opacity=0.2) display(China_map) China_map.save("China_map.html")

Python如何實現(xiàn)folium交互地圖

好在folium的choropleth函數(shù)直接支持json格式地圖,僅需提供素材地址即可,data中應(yīng)該包含與json素材中的屬性表和地理信息邊界保持一致得映射表,columns用于指定要用到的字段名稱。key_on用于指定json地圖數(shù)據(jù)中和你指定得data中對應(yīng)得連接鍵(相當(dāng)于主鍵)。
fill_color可以指定用于配色的colorBrewer調(diào)色板。

polyline

folium中得線圖制作也較為簡單,僅需提供給folium.PolyLine函數(shù)一組帶有嵌套列表或者元組得經(jīng)緯度點即可。

mydata1 =full.sample(20).loc[:,["lat","lon"]].values.tolist()
mydata2 =[(i,j) for i,j in full.sample(20).loc[:,["lat","lon"]].values.tolist()]
oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)
folium.PolyLine(mydata1,color = 'black').add_to(oneUserMap)
display(oneUserMap)
oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)
folium.PolyLine(mydata2,color = 'black').add_to(oneUserMap)
display(oneUserMap)

Python如何實現(xiàn)folium交互地圖

稍微增加一些循環(huán)條件就可以構(gòu)造出來實用的路徑圖場景:

def map_fun():
    myresult = full.loc[:,["lat","lon","cities","pop"]].values
    oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)
   for e in myresult:        folium.RegularPolygonMarker(        [e[0],e[1]],        popup=str(e[2])+":"+str(e[3]),        fill_color='#769d96',        number_of_sides=10,        radius=10        ).add_to(oneUserMap)    others    = full.loc[full['cities']!='鄭州市',["lat","lon"]].values.tolist()
   for i in range(len(others)):        zhengzhou = full.loc[full['cities']=='鄭州市',["lat","lon"]].values.tolist()        zhengzhou.append(others[i])        folium.PolyLine(            locations = zhengzhou,            color = 'black'        ).add_to(oneUserMap)    display(oneUserMap)
   return Noneif __name__ == '__main__':    map_fun()

Python如何實現(xiàn)folium交互地圖

上述就是小編為大家分享的Python如何實現(xiàn)folium交互地圖了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁題目:Python如何實現(xiàn)folium交互地圖
網(wǎng)站網(wǎng)址:http://muchs.cn/article28/ihihcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作響應(yīng)式網(wǎng)站、品牌網(wǎng)站建設(shè)面包屑導(dǎo)航、自適應(yīng)網(wǎng)站網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化