繁体   English   中英

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

[英]TimeSliderChoropleth map with Python Folium won't render geojson polygons individually

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

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

代码应在 slider 上的每个时间步绘制一个多边形。 但是,它会为每个时间步渲染所有三个多边形。 多边形也不是 colors 或 styledict 中提供的不透明度。

我在想它一定是 styledict 某处的错误,但是 slider 栏记录了作为纪元给出的正确日期。 我为 colors 尝试了几种不同的格式,这些都没有改变。 我不确定我哪里出了问题。 任何帮助,将不胜感激。

下面是 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作为在 map 中放置大量对象的地图的加速。 由于这个项目确实如此,我试图使用它。 但是,它似乎不适用于 TimeSliderChoropleth class。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM