数据可视化-Python中的folium的图层层级控制

数据可视化-Python中的folium的图层层级控制

Folium是一个基于leaflet.js的python地图库,本文简单介绍下folium的图层的结构设计和多个图层控制的实现:

Folium的元素架构

Folium官方文档中写的比较散,我这里画了个元素的架构示意图。
https://python-visualization.github.io/folium/
在这里插入图片描述

  1. Map属性是Folium的基本属性。
  2. 三类(Vector_Layer、Raster_Layer、EtraFeatures)图层元素可以通过add_to()方法添加在Map中
  3. 同一个Map下,实现多个图层,通过定义多个FeatureGroup()方法,并通过add_to()到Map中实现,再使用LayerControl()方法在web中实现图层的切换控制。

举例说明:

在一个Map中呈现一个由Marker组成的散点图层和一个由Polygon组成的多边形图层,并通过LayerControl()方法切换,代码仅作为示意。

#创建map
Grid_map = folium.Map(location=[30,120], zoom_start=10)
#创建一个Polygon的FeatureGroup
gridgroup = folium.FeatureGroup(name='Grid_Layer', control=True)
##创建一个Marker的FeatureGroup
pointsgroup = folium.FeatureGroup(name='Points_Layer', control=True)

#创建marker_cluster对象并作为pointsgroup的child:
marker_cluster = plugins.MarkerCluster().add_to(pointsgroup)
#创建Marker并加到marker_cluster中
for name,row in full.iterrows():
    folium.Marker([row["纬度"], row["经度"]], popup="{0}:{1}".format(row["地市"], row["关联小区名称"])).add_to(marker_cluster) 
#将pointsgroup作为Map的child
Grid_map.add_child(pointsgroup)

#创建polygon并作为gridgroup的child:
folium.Polygon(points_latlon,color='darkred',opacity = 0,fill_color='darkred',fill_opacity = 0.5).add_to(gridgroup)

#将gridgroup作为Map的child
Grid_map.add_child(gridgroup)            
#打开map的LayerControl
folium.LayerControl().add_to(Grid_map)
#将Map保存到本地
Grid_map.save(Output_html)

实现的效果如下:在map中得到两个可以切换的Layer

在这里插入图片描述

  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值