python–Folium

官方说明:folium.link.

  • map用于生成地图,主要用到黄色的参数
    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, png_enabled=False, zoom_control=True, **kwargs)

Parameters 参数说明

  • location (tuple or list, default None) – Latitude and Longitude of Map (Northing, Easting).

  • width (pixel int or percentage string (default: ‘100%’)) – Width of the map.

  • height (pixel int or percentage string (default: ‘100%’)) – Height of the map.

  • tiles (str, default ‘OpenStreetMap’) – Map tileset to use. Can choose from a list of built-in tiles, pass a custom URL or pass None to create a map without tiles. For more advanced tile layer options, use the TileLayer class.

  • min_zoom (int, default 0) – Minimum allowed zoom level for the tile layer that is created.

  • max_zoom (int, default 18) – Maximum allowed zoom level for the tile layer that is created.

  • zoom_start (int, default 10) – Initial zoom level for the map.

  • attr (string, default None) – Map tile attribution; only required if passing custom tile URL.

  • crs (str, default ‘EPSG3857’) – Defines coordinate reference systems for projecting geographical points into pixel (screen) coordinates and back.定义坐标参考系统

  • control_scale (bool, default False) – Whether to add a control scale on the map.

  • prefer_canvas (bool, default False) – Forces Leaflet to use the Canvas back-end (if available) for vector layers instead of SVG.

  • no_touch (bool, default False) – Forces Leaflet to not use touch events even if it detects them.

  • disable_3d (bool, default False) – Forces Leaflet to not use hardware-accelerated CSS 3D transforms for positioning (which may cause glitches in some rare environments) even if they’re supported.

  • zoom_control (bool, default True) – Display zoom controls on the map.

basic example

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}.png?access_token=mytoken',attr='Mapbox attribution'
...)

Markers

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:点击标记后弹出的信息
popup:鼠标放标记上显示的信息

标记样式修改

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)

标记圆形区域

点击任意位置出现经纬度folium.LatLngPopup()

m = folium.Map(location=[46.1991, -122.1889], tiles="Stamen Terrain", zoom_start=13)m.add_child(folium.LatLngPopup())


打点功能:点击任意位置出现标记,再点击弹出信息

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对象

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绘制中国的政策地图,城市的政策汇总在一个excel表中。要实现的效果是政策可视化,点击某一个城市,可以弹出这个城市所有的政策。

import folium
import webbrowser as wb
import numpy as np
import xlrd
import pandas as pd
from folium import CustomIcondef get_data():'''return:df_data:返回城市对应的编号,经纬度df_policy:返回城市的政策名称、链接、编号'''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).valuedf_policy.loc[i,'name'] = table_policy.cell(i,1).valuedf_policy.loc[i,'link'] = table_policy.cell(i,2).valuereturn df_data, df_policy# 中文转换
def parse_zhch(s):return str(str(s).encode('ascii' , 'xmlcharrefreplace'))[2:-1]def show_map(df_data,df_policy):'''可以使用高德地图或默认地图m = folium.Map(zoom_start=4,zoom_control=True,tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',attr='default')'''# 默认地图m = folium.Map(location=[39.904,116.408],zoom_start=4,zoom_control=True,tiles='OpenStreetMap')for i in range(1,len(df_data)):# 得到该城市的编号、经纬度number = df_data.loc[i,'number']latitude = df_data.loc[i,'latitude']longitude = df_data.loc[i,'longitude']tip = df_data.loc[i,'city']# 获取城市编号对应的所有政策和链接的行索引city_index = df_policy[df_policy.number == number].index.tolist()# 将城市名称和链接放同一个list中s=[]for i in city_index:s.append(df_policy.loc[i,'name']) s.append(df_policy.loc[i,'link'])# 计算最大长度length = []for i in range(len(s)):length.append(len(s[i]))WIDTH = max(length)# 点击弹出内容和弹出框大小设置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.png',icon_size=(20, 20))# tooltip:悬浮弹出信息;popup:点击出现信息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)

实现效果:

python用folium绘制地图并设置弹窗相关推荐

  1. Python使用turtle绘制简单图形-设置绝对坐标setpos(), 抬起画笔penup(),放下画笔pendown()

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python使用turtle绘制简单图形 [太阳]选择题 以下Python代码中的penup ...

  2. python folium绘制地图

    这里写自定义目录标题 各级别地图 世界地图 国家地图 市级地图 地图形式 普通标记 圆形标记 点击获取经纬度 动态放置标记 热力图标记 密度图绘制 folium 相比较于国内百度的 pyecharts ...

  3. Python数据挖掘:绘制直方图,设置上下限和步长,绘制子图

    有任何问题欢迎在评论区提出! 绘制直方图: ''' 来源:天善智能韦玮老师 课堂笔记 作者:Dust 直方图hist某一段数据出现的频数 ''' import numpy as npy import ...

  4. python使用pyecharts绘制地图

    pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Pyt ...

  5. [710]python使用pyecharts绘制地图

    pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Pyt ...

  6. python中pyecharts绘制地图

    pyecharts中的Geo 地理坐标系组件用于地图的绘制,可直接使用全国的城市信息. 使用前先安装相关地图扩展包: pip install echarts-countries-pypkg pip i ...

  7. 【python绘制地图】使用folium制作地图,可解决多数问题

    Python使用folium制作地图并生成png图片 第一章 folium的方法和类的介绍(思维导图) 第二章 使用folium制作地图 第三章 folium实用功能进阶 第三章 使用Html2Ima ...

  8. python绘制地图线路_python pyecharts绘制地图

    效果 本文使用python库--pyecharts绘制地图,修改标签样式并调色.重点在于参数调用方法(理解Union[Sequence[str]]或者看源码). 效果如图: image.png 工具与 ...

  9. python pyecharts绘制地图

    文章目录 效果 工具与配置 实操 效果 本文使用python库--pyecharts绘制地图,修改标签样式并调色.重点在于参数调用方法(理解Union[Sequence[str]]或者看源码). 效果 ...

最新文章

  1. 机器学习中的欠拟合与过拟合
  2. AI设计师“鲁班”进化史:每秒制作8000张双11海报,没一张雷同!
  3. TP框架中同时使用“or”和“and”
  4. CSS3属性animation-play-state控制动画运行或暂停的技巧
  5. Shell脚本中$的用法
  6. 《四世同堂》金句摘抄(二)
  7. jrebel、JavaRebel
  8. 10分钟上线 - API网关 + 函数计算实现图片处理服务
  9. java之线程相关juc
  10. leetcode题库:1.两数之和
  11. 【工程项目经验】Compile Android Error fatal error opening dependency file No such file or directory
  12. 一个价值$1.5万的 PS NOW 漏洞
  13. python怎么播放音乐_Python实现在线音乐播放器
  14. 如何在PR中同步音频和视频
  15. 2.4g和5g要不要合并_路由器2.4g和5g双频合一好还是分开好
  16. 北京周末游周边 —— 延庆世园会
  17. 工具篇之Chrome浏览器所有页面崩溃(包括设置页面)的处理方法
  18. 淘宝关键词搜索商品接口分析商品价格走势(商品列表接口,商品销量接口,商品价格接口,分类ID采集商品数据接口)接口代码对接教程
  19. spring in action学习-第一章 spring之旅
  20. vue中echarts使用案例:饼图(可直接使用)

热门文章

  1. GoLang之go test测试
  2. Python:游戏:测试打字速度
  3. 架构模式-VIPER
  4. Java 求一个数的立方根
  5. Image fusion in the loop of high-level vision tasks: Seafusion总结与代码注释
  6. 李云大连理工计算机系2015级,大连理工大学考研研究生导师简介-李秀英
  7. Ubuntu 11.10 Linux 3D桌面完全教程,显卡驱动安装方法,compiz特效介绍,常见问题解答
  8. 802.11基本概念介绍【802.11 无线网络权威指南学习总结1】
  9. Linux虚拟机与主机共享文档
  10. Oracle-09:聚合函数