folium基础内容介绍
folium基础内容介绍
1. 简介
folium是js上著名的地理信息可视化库leafet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm或自行获取的osm资源和地图原件进行地理信息内容的可视化,以及制作优美的可交互地图,是通过不断添加图层元素来定义一个Map对象,最后以几种方式将Map对象展现出来。
而在Map对象的生成形式上,可以在定义所有的图层内容之后,将其保存为html
文件在浏览器中独立显示,也可以基于jupyter notebook
在一个ipynb文件嵌入对应的交互地图。
2. 创建地图
首先,创建一张指定中心坐标的地图,这里指定中心坐标为保定市。
m = folium.Map(location=[38.85,115.48],zoom_start=14)
m.__class__
m
通过class
魔法方法我们可以看到创建的m为folium中的Map类型,接下来直接输出m可以获取初始图表。
folium.Map()为绘制地图图层的基本函数,其主要参数如下:
location
: tuple或list类型输入,用于控制初始地图中心点的坐标,格式为(纬度,经度)或[纬度,经度],默认为Nonezoom_start
:表示初始地图的缩放尺寸,数值越大缩放程度越大。width
:int型或str型,int型时,传入的是地图宽度的像素值;str型时,传入的是地图宽度的百分比,形式为’xx%’。默认为’100%’height
:int型或str型,int型时,传入的是地图高度的像素值;str型时,传入的是地图高度的百分比,形式为’xx%’。默认为’100%’tiles
:str型,用于控制绘图调用的地图样式,默认为’OpenStreetMap
’,也有一些其他的内建地图样式,如’Stamen Terrain
’、’Stamen Toner
’、’Mapbox Bright
’、’Mapbox Control Room
'等;也可以传入’None’来绘制一个没有风格的朴素地图,或传入一个URL来使用其它的自选osmmax_zoom
:int型,控制地图可以放大程度的上限,默认为18control_scale
:bool
型,控制是否在地图上添加比例尺,默认为False即不添加no_touch
:bool型,控制地图是否禁止接受来自设备的触控事件譬如拖拽等,默认为False,即不禁止。
示例:
- 创建width为50%且施加比例尺的地图
m = folium.Map(location=[38.85,115.48],zoom_start=14,control_scale=True,width='50%')
m
地图只有左半边被填充,且在地图左下角添加了比例尺,标记公里与英里的比例。
- 更改tiles风格,设置
“Stamen Terrain”
风格地图
m = folium.Map(location=[38.85,115.48],zoom_start=14, tiles='Stamen Terrain')
m
- 更改tiles风格,设置
“Stamen Toner”
风格地图
m = folium.Map(location=[38.85,115.48],zoom_start=14, tiles='Stamen Toner')
m
3. 在地图图层上添加组件
为地图添加标记组件
通过
folium.Maker()
方法创建简单的标记部件,并通过add_to()
将定义好的部件施加于先前创建的Map对象m之上。
m = folium.Map(location=[38.85,115.48],zoom_start=14)# 为m添加标记部件folium.Marker([38.85,115.48], popup='<i>Mt. Hood Meadows</i>').add_to(m)# 显示mm
folium.Maker()主要的参数有:
location
: 同folium.Map()中的同名参数,用于确定标记部件的经纬位置popup
:str型或folium.Popup()对象输入,用于控制标记部件的具体样式(folium内部自建了许多样式),默认为None,即不显示部件。icon
:**folium.Icon()**对象,用于设置popup定义的部件的具体颜色、图标内容等
示例:设置图标为"cloud"
, 绿色组件。
m = folium.Map(location=[38.85,115.48],zoom_start=14)#为m添加标记部件folium.Marker([38.85,115.48], popup='<i>Mt. Hood Meadows</i>',icon=folium.Icon(icon="cloud", color="green")).add_to(m)# 显示mm
在地图上添加圆圈
除了上面单点类型的图形部件,我们也可以在地图上添加指定范围的几何图像。
通过
folium.Circle()
来绘制指定圆心和半径的圆圈。
m = folium.Map(location=[38.85,115.48],zoom_start=14)#为m添加标记部件folium.Circle(radius=100, location=[38.85,115.48], popup='The waterfront',color="red").add_to(m)# 显示mm
folium.Circle()的主要参数有:
location
:同folium.Map()中的location,用于控制圆圈的圆心坐标。radius
:int型,用于控制圆圈的半径,单位米,注意,在folium.Circle()中,radius因为半径的单位是米,所以其大小随着我们对地图的缩放程度而进行相应的变化,但在与folium.CircleMarker()方法中的radius参数单位为像素,即其为屏幕上大小固定的一个圆圈,随着地图的缩放,其大小也不会发生变化。color
:str型,用于控制圆圈的颜色,默认为十六进制颜色’#3388ff’或者"blue",即一种蓝色。popup
:str型或**folium.Popup()**对象,用于控制圆圈的样式,默认为None,即无样式。fill
:bool型,当为True时,圆圈内部将被填充上色彩,默认不填充。fill_color
:str型,控制圆圈内部填充的色彩,默认与color参数一致。fill_opacity
:float型,用于控制圆圈内部填充颜色的透明度,从0.到1.之间,默认为0.2。
示例:
m = folium.Map(location=[38.85,115.48],zoom_start=14)#为m添加标记部件folium.Circle(radius=100, location=[38.85,115.48], popup='The waterfront',color="blue",fill_color="#FF66CC",fill_opacity=0.1,fill=True,).add_to(m)# 显示mm
在地图上绘制任何几何图形
有些时候我们希望可以在地图上呈现不规则的几何区域,folium.PolyLine()可以实现。
folium.PolyLine()主要参数:
locations
:二级嵌套的list,用于指定需要按顺序连接的坐标点,若要绘制闭合的几何图像,需要在传入列表的首尾传入同样的坐标。color
:str型,传入十六进制的颜色,用于控制线条的颜色,默认为’#03f’。weight
:float型,用于控制线条的宽度,默认为5。opacity
:float型,用于控制线条的透明度,默认为0.5。popup
:str型或folium.Popup()对象,用于控制线条样式。
m = folium.Map(location=[38.85,115.48],zoom_start=14,control_scale=True)ls = folium.PolyLine(locations=[[38.68,115.67],[38.85,115.48],[38.65,115.37],[38.68,115.67]],color='red')ls.add_to(m)m
在地图上添加点击触发事件
有些时候我们希望我们的地图不光是死板的展示信息,还能根据鼠标的点击事件,来唤起更多的信息展示内容,即为地图添加更多的子内容,我们使用add_child()来完成各种子内容的添加。
- 实现点击地图任意位置获取经纬度信息提示
m = folium.Map(location=[38.85,115.48],zoom_start=14, tiles='Stamen Toner')m.add_child(folium.LatLngPopup())
- 实现点击地图任意位置产生一个新的图标
m = folium.Map(location=[38.85,115.48],zoom_start=14, tiles='Stamen Toner')m.add_child(folium.ClickForMarker())
热力图绘制
有些时候我们需要查看一些数据的分布情况,可以通过热力图绘制查看。
from folium import pluginsfrom folium.plugins import HeatMapmap_hooray = folium.Map(location=[24.482426, 118.157606], zoom_start=14)HeatMap(df_result[["平均纬度", "平均经度"]].iloc[:1000].values).add_to(map_hooray)map_hooray
folium基础内容介绍相关推荐
- 生动的SDN基础内容介绍(六)--SDN应用平面和网络测量
生动的SDN基础内容介绍(六)--SDN应用平面和网络测量 背景 网络测量 网络测量的定义 网络测量的对象 网络状态参数 网络性能参数 网络流量参数 Heavy Hitter和Hierarchical ...
- 生动的SDN基础内容介绍(三)--Ryu控制器
生动的SDN基础内容介绍(三)--Ryu控制器 控制器 Ryu的目录 Ryu的学习 simple_switch_13.py simple_switch_rest_13.py 交换机信息及流表项的查询 ...
- 生动的SDN基础内容介绍(五)--SDN北向协议/接口和意图驱动
生动的SDN基础内容介绍(五)--SDN北向协议/接口和意图驱动 背景 北向协议 REST API REST API在Ryu中的实现 意图驱动 总结 背景 经过前几章的讲解,现在回过头来再看看SDN的 ...
- 生动的SDN基础内容介绍(二)--OpenFlow协议
生动的SDN基础内容介绍(二)--OpenFlow协议 背景 OpenFlow OpenFlow的基础概念 流表项 流表 漏表 流表项的下发 流表项的删除 计量表 组表 控制器与交换机的通信 总结 背 ...
- 图像标注的基础内容介绍
点击上方"AI公园",关注公众号,选择加"星标"或"置顶" 作者:Surya Remanan 编译:ronghuaiyang 导读 给大家介 ...
- 收藏 | 图像标注的基础内容介绍
作者:Surya Remanan,来源:AI公园 介绍 "如果没有数据分析,公司就会变得既盲又聋,就像高速公路上的鹿一样在网络上游荡." - Geoffrey Moore 每个数据 ...
- 工赋开发者社区 | 当PLC与见“IT”:MES/MOM标准之ISA-95基础内容介绍
ISA-95 简称S95,也有称作SP95.ISA-95 是企业系统与控制系统集成国际标准,由国际自动化学会(ISA,International Society of Automation) 在199 ...
- 【组队学习】【24期】Datawhale组队学习内容介绍
第24期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 零基础入门语音识别(食物声音识别) Docker教程 数据挖掘实践(智慧海洋) 集成学习(中) 河北邀请赛(二手车价 ...
- 初学Oracle的笔记(2)——基础内容(实时更新中..)
续 初学Oracle的笔记(1)--基础内容(实时更新中..) 1.oracle中创建一张表,写法与sql server中的一样. SQL> create table Course 2 ( cn ...
最新文章
- Python 函数参数有冒号 声明后有- 箭头 返回值注释 参数类型注释
- 朱晔的互联网架构实践心得S1E2:屡试不爽的架构三马车
- Java parallel control
- SQL SERVER深入学习学习资料参考
- struts2教程(3)--请求参数处理
- Spring与日志的整合
- easyui tree动态加载_动态路由:Gin vs SpringMVC
- JDK源码系列(2)-Object类
- docker知识点查阅
- 监控摄像机的区别和分类
- Cap22_信息系统安全管理
- 命名集 —— 名字结构
- VM虚拟机Bridge模式VMnet0网卡无法启动问题的解决
- 【IT运维】自动化运维是什么意思?有什么作用?
- vb从入门到精通_干货|让你 ArcGIS Engine从入门到精通的22个视频
- 切换不了摄像头 高拍仪_高拍仪常见问题解答
- springboot实现条形码_OkapiBarcode生成条形码
- 数学文章 关于圆锥体积公式的证明
- Cisco Packet Tracer路由器的基本命令
- 台式计算机风扇一直响,台式电脑风扇声音大怎么办(笔记本风扇一直嗡嗡响)...
热门文章
- 六、【中级篇】看门狗(watch dog)
- Python数据类型练习题
- 安装thrift错误的处理方法
- newifi无盘服务器,newifi 3 padavan纯净版固件,2.4G挺稳定,2019年5.09更新
- Linux 登录MySQL出现 unknown variable...错误
- 怎么把网页添加到公众号里
- *ST荣联:正在培养区块链团队,积极储备相关解决方案的能力
- 经典算法(2):黄金分割法(Gold)
- Android 初学者入门(一个最简单的应用程序)
- IOS AutoFill Extension 使用