官方說(shuō)明:folium.link.
Map(location=None, width=‘100%', height=‘100%', left=‘0%', top=‘0%', position=‘relative', tiles=‘OpenStreetMap', attr=None, min_zoom=0, max_zoom=18, zoom_start=10, min_lat=- 90, max_lat=90, min_lon=- 180, max_lon=180, max_bounds=False, crs=‘EPSG3857', control_scale=False, prefer_canvas=False, no_touch=False, disable_3d=False, jpg_enabled=False, zoom_control=True, **kwargs)
Parameters 參數(shù)說(shuō)明
m = folium.Map(location=[45.523, -122.675], width=750, height=500) m = folium.Map(location=[45.523, -122.675], tiles='cartodb positron') m = folium.Map( location=[45.523, -122.675], zoom_start=2, tiles='https://api.mapbox.com/v4/mapbox.streets/{z}/{x}/{y}.jpg?access_token=mytoken', attr='Mapbox attribution' ...)
m = folium.Map(location=[45.372, -121.6972], zoom_start=12, tiles="Stamen Terrain") tooltip = "Click me!" folium.Marker( [45.3288, -121.6625], popup="i>Mt. Hood Meadows/i>", tooltip=tooltip ).add_to(m)
tooltip:點(diǎn)擊標(biāo)記后彈出的信息
popup:鼠標(biāo)放標(biāo)記上顯示的信息
m = folium.Map(location=[45.372, -121.6972], zoom_start=12, tiles="Stamen Terrain") folium.Marker( location=[45.3288, -121.6625], popup="Mt. Hood Meadows", icon=folium.Icon(icon="cloud"), ).add_to(m) folium.Marker( location=[45.3311, -121.7113], popup="Timberline Lodge", icon=folium.Icon(color="green"), ).add_to(m) folium.Marker( location=[45.3300, -121.6823], popup="Some Other Location", icon=folium.Icon(color="red", icon="info-sign"), ).add_to(m)
點(diǎn)擊任意位置出現(xiàn)經(jīng)緯度folium.LatLngPopup()
m = folium.Map(location=[46.1991, -122.1889], tiles="Stamen Terrain", zoom_start=13) m.add_child(folium.LatLngPopup())
打點(diǎn)功能:點(diǎn)擊任意位置出現(xiàn)標(biāo)記,再點(diǎn)擊彈出信息
m = folium.Map(location=[46.8527, -121.7649], tiles="Stamen Terrain", zoom_start=13) folium.Marker([46.8354, -121.7325], popup="Camp Muir").add_to(m) m.add_child(folium.ClickForMarker(popup="Waypoint"))
允許顯示任何HTML對(duì)象
m = folium.Map(location=[46.3014, -123.7390], zoom_start=7, tiles="Stamen Terrain") folium.Marker( location=[47.3489, -124.708], popup=folium.Popup(max_width=450).add_child( folium.Vega(vis1, width=450, height=250) ), ).add_to(m)
可以參考的代碼
html參考鏈接
用folium繪制中國(guó)的政策地圖,城市的政策匯總在一個(gè)excel表中。要實(shí)現(xiàn)的效果是政策可視化,點(diǎn)擊某一個(gè)城市,可以彈出這個(gè)城市所有的政策。
import folium import webbrowser as wb import numpy as np import xlrd import pandas as pd from folium import CustomIcon def get_data(): ''' return: df_data:返回城市對(duì)應(yīng)的編號(hào),經(jīng)緯度 df_policy:返回城市的政策名稱、鏈接、編號(hào) ''' file_name = 'policy.xls' all_data = xlrd.open_workbook(file_name) table = all_data.sheet_by_name('num_lat_lon') df_data = pd.DataFrame(columns=['city','number','latitude','longitude']) for i in range(1,table.nrows): df_data.loc[i] = table.row_values(i) table_policy = all_data.sheet_by_name('policy') df_policy = pd.DataFrame(columns=['number','name','link']) for i in range(1,table_policy.nrows): df_policy.loc[i,'number'] = table_policy.cell(i,3).value df_policy.loc[i,'name'] = table_policy.cell(i,1).value df_policy.loc[i,'link'] = table_policy.cell(i,2).value return df_data, df_policy # 中文轉(zhuǎn)換 def parse_zhch(s): return str(str(s).encode('ascii' , 'xmlcharrefreplace'))[2:-1] def show_map(df_data,df_policy): ''' 可以使用高德地圖或默認(rèn)地圖 m = folium.Map(zoom_start=4,zoom_control=True,tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cnsize=1scale=1style=7x={x}y={y}z={z}',attr='default') ''' # 默認(rèn)地圖 m = folium.Map(location=[39.904,116.408],zoom_start=4,zoom_control=True,tiles='OpenStreetMap') for i in range(1,len(df_data)): # 得到該城市的編號(hào)、經(jīng)緯度 number = df_data.loc[i,'number'] latitude = df_data.loc[i,'latitude'] longitude = df_data.loc[i,'longitude'] tip = df_data.loc[i,'city'] # 獲取城市編號(hào)對(duì)應(yīng)的所有政策和鏈接的行索引 city_index = df_policy[df_policy.number == number].index.tolist() # 將城市名稱和鏈接放同一個(gè)list中 s=[] for i in city_index: s.append(df_policy.loc[i,'name']) s.append(df_policy.loc[i,'link']) # 計(jì)算最大長(zhǎng)度 length = [] for i in range(len(s)): length.append(len(s[i])) WIDTH = max(length) # 點(diǎn)擊彈出內(nèi)容和彈出框大小設(shè)置 ss='' for i in range(len(s)): ss = ss + s[i] + '/br>' pop = folium.Popup(html=ss,max_width=WIDTH*10) icon = CustomIcon(icon_image ='loc.jpg',icon_size=(20, 20)) # tooltip:懸浮彈出信息;popup:點(diǎn)擊出現(xiàn)信息 folium.Marker([latitude,longitude],icon=icon, popup=pop,tooltip=parse_zhch(tip)).add_to(m) m.save('map.html') wb.open('map.html') if __name__ == '__main__': df_data,df_policy = get_data() show_map(df_data,df_policy)
實(shí)現(xiàn)效果:
到此這篇關(guān)于python用folium繪制地圖并設(shè)置彈窗效果的文章就介紹到這了,更多相關(guān)python folium繪制地圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:葫蘆島 呼倫貝爾 湘西 安慶 銀川 三亞 呼倫貝爾 烏魯木齊
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python用folium繪制地圖并設(shè)置彈窗效果》,本文關(guān)鍵詞 python,用,folium,繪制,地圖,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。