Python Folium 的 TimeSliderChoropleth 地图不会单独渲染 geojson 多边形
TimeSliderChoropleth map with Python Folium won't render geojson polygons individually
我正在尝试使用 python Folium 在 TimeSliderChoropleth 地图上渲染一些 GeoJSON 多边形。
这项工作正在 Jupyter Notebook 中完成。
代码应该在滑块上的每个时间步绘制一个多边形。但是,它会为每个时间步渲染所有三个多边形。多边形也不是样式表中提供的颜色或不透明度。
我在想这一定是 styledict 某处的错误,但是滑动条记录了作为纪元给出的正确日期。我尝试了几种不同的颜色格式,其中 none 改变了一切。我不确定我哪里出了问题。任何帮助将不胜感激。
下面是 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 class.
我正在尝试使用 python Folium 在 TimeSliderChoropleth 地图上渲染一些 GeoJSON 多边形。
这项工作正在 Jupyter Notebook 中完成。
代码应该在滑块上的每个时间步绘制一个多边形。但是,它会为每个时间步渲染所有三个多边形。多边形也不是样式表中提供的颜色或不透明度。
我在想这一定是 styledict 某处的错误,但是滑动条记录了作为纪元给出的正确日期。我尝试了几种不同的颜色格式,其中 none 改变了一切。我不确定我哪里出了问题。任何帮助将不胜感激。
下面是 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 class.