Folium多个地图叠加

时间:2019-07-16 19:19:46

标签: python python-3.x folium

我对大叶草还很陌生,所以这可能有点笨拙,但是我目前正在尝试绘制几个不同数据点的热图,并增加在同一图上所有热图之间切换的功能。例如,我有这样的东西:

# The base map
 hmap = folium.Map(location=[38.908111, -77.008871], tiles="Stamen Terrain", zoom_start=12)

# And each layer

# Homicide 
HeatMap(list(zip(crime_homicide.LATITUDE.values, crime_homicide.LONGITUDE.values))).add_to(folium.FeatureGroup(name='Homicides').add_to(hmap))

# Robbery

HeatMap(list(zip(crime_robbery.LATITUDE.values, crime_robbery.LONGITUDE.values))).add_to(folium.FeatureGroup(name='Robbery').add_to(hmap))

# Assault

HeatMap(list(zip(crime_assault.LATITUDE.values, crime_assault.LONGITUDE.values))).add_to(folium.FeatureGroup(name='Assault').add_to(hmap))

folium.LayerControl(collapsed=False).add_to(hmap)

folium.GeoJson(dc_shape).add_to(hmap)

我尝试使用叶片的FeatureGroup功能,但看起来那只是特定的标记,而不是整个地图。如果都是热图,是否可以在不同的图之间进行切换?

1 个答案:

答案 0 :(得分:1)

您的代码似乎正常。 尝试这个 - hmap.add_child

或者您也可以尝试使用heatmapwithtime,指定不同的指标,您可以实时调整以查看不同的热点图。

但是,FeatureGroup()似乎无法与HeatMapWithTime一起使用,并且直接在热图上添加图层会导致侧面上有多个时间滑块,而所有添加的图层应该只有一个(公共)时间滑块。

因此,如果您希望拥有一个控件,则必须将所有数据放在一个geojson中并使用它。

为什么要添加要素组?如果您希望能够选择要显示的HeatMapWithTime实例,则可以将它们都添加到地图中,并且都应该在图层控件中打开。

m = Map() HeatMapWithTime(data1).add_to(m) HeatMapWithTime(data2).add_to(m)

仅供参考,功能组用于将项目分组并一起显示。这些项目本身不会直接添加到地图中。例如:

fg = FeatureGroup().add_to(m) fg.add_child(Item1) fg.add_child(Item2)

这也是链接,可能会对您有所帮助:) https://python-visualization.github.io/folium/plugins.html