TimeSliderChoropleth map with Python Folium 不会单独渲染 geojson 多边形



我正在尝试使用python Folium在TimeSliderChoropleth地图上渲染一些GeoJSON多边形。

这项工作是在Jupyter Notebook中完成的。

代码应该在滑块上每个时间步绘制一个多边形。但是,它为每个时间步呈现所有三个多边形。这些多边形也不是样式表中提供的颜色或不透明度。

我认为这一定是一个错误的风格在某个地方,但是滑块栏记录了正确的日期,这是作为时代给出的。我尝试了几种不同的颜色格式,没有任何改变。我不知道我做错了什么。如有任何帮助,不胜感激。

Jupyter Notebook的最小可复制示例如下。

import folium
import folium.plugins as folium_plugins
from shapely.geometry.polygon import Polygon
import geopandas as gpd

m = folium.Map(location=[33.7490, -84.3880], width=500, height=500, scrollWheelZoom=False, prefer_canvas=True, zoom_start=10)
p1 = Polygon([[-84.688, 33.649], [-84.488, 33.649], [-84.488, 33.449], [-84.688, 33.449], [-84.688, 33.649]])
p2 = Polygon([[-84.488, 33.649], [-84.288, 33.649], [-84.288, 33.449], [-84.488, 33.449], [-84.488, 33.649]])
p3 = Polygon([[-84.288, 33.649], [-84.088, 33.649], [-84.088, 33.449], [-84.288, 33.449], [-84.288, 33.649]])
df_poly = gpd.GeoDataFrame(data={'geometry' : [p1, p2, p3]})
df_poly.crs = 'EPSG:4326'
sd = {
'0' : {'1617247390': {'color': '#FFEBEB', 'opacity': 0.5}},
'1' : {'1618247390': {'color': '#0073CF', 'opacity': 0.5}},
'2' : {'1619247390': {'color': '#FFEBEB', 'opacity': 0.5}}
}
folium.plugins.TimeSliderChoropleth(data=df_poly.to_json(), styledict=sd).add_to(m)
m

似乎prefer_canvas=True是问题的原因。把它去掉就行了。

在一些文档中,prefer_canvas=True被建议作为在地图中放置大量对象的地图的加速。因为这个项目做,我试图使用它。但是,它似乎不能与TimeSliderChoropleth类一起工作。

最新更新