使用 Python Folium 的 TimeSliderChoropleth 地图不会单独渲染 geojson 多边形

如何解决使用 Python Folium 的 TimeSliderChoropleth 地图不会单独渲染 geojson 多边形

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

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

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

我认为它一定是某个地方的 styledict 中的错误,但是滑动条记录了作为时代给出的正确日期。我尝试了几种不同的颜色格式,但都没有改变任何东西。我不确定我哪里出错了。任何帮助将不胜感激。

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.449],[-84.688,33.649]])
p2 = polygon([[-84.488,[-84.288,33.649]])
p3 = polygon([[-84.288,[-84.088,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','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 类。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?