Folium 多地图叠加
Folium Multiple map overlays
我对 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)
我尝试使用 folium 的 FeatureGroup
功能,但看起来那只是特定的标记,而不是整个地图。如果它们都是热图,有没有办法在不同的地图之间切换?
您的代码看起来不错。
试试这个 -
hmap.add_child
或者您也可以尝试 heatmapwithtime,指定不同的指标,您可以实时调整这些指标以查看不同的热图。
但是,FeatureGroup() 似乎无法与 HeatMapWithTime 一起使用,并且直接向热图添加图层会导致侧面出现多个时间滑块,而所有添加的图层应该只有一个(公共)时间滑块。
因此,如果您想拥有一个控件,则必须将所有数据放在一个 geojson 中并使用它。
为什么要添加功能组?如果您希望能够 select 要显示哪个 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)
也是这个link,可能对你有帮助:)
https://python-visualization.github.io/folium/plugins.html
我对 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)
我尝试使用 folium 的 FeatureGroup
功能,但看起来那只是特定的标记,而不是整个地图。如果它们都是热图,有没有办法在不同的地图之间切换?
您的代码看起来不错。 试试这个 - hmap.add_child
或者您也可以尝试 heatmapwithtime,指定不同的指标,您可以实时调整这些指标以查看不同的热图。
但是,FeatureGroup() 似乎无法与 HeatMapWithTime 一起使用,并且直接向热图添加图层会导致侧面出现多个时间滑块,而所有添加的图层应该只有一个(公共)时间滑块。
因此,如果您想拥有一个控件,则必须将所有数据放在一个 geojson 中并使用它。
为什么要添加功能组?如果您希望能够 select 要显示哪个 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)
也是这个link,可能对你有帮助:) https://python-visualization.github.io/folium/plugins.html