我正在处理使用 python、folium 和 geojson 创建的地图,类似于这个.
但是,与其将此图像作为交互式 HTML 文档,不如将其简单地导出为 png 或 svg。
使用语法:
m = folium.Map( # etc..)
m.save("filename.png")
保存文件,但它仍然是 HTML,而不是 png。渲染 not-to-html 的正确输出命令是什么?
我用这个:
... 其中 m 是我的地图对象。 而5是渲染地图的时间(秒)。
import io
from PIL import Image
img_data = m._to_png(5)
img = Image.open(io.BytesIO(img_data))
img.save('image.png')
在解决同样的问题后,我发现这个解决方案使用 pdfkit、wkthmltopdf 和 fitz,但没有 SElENIUM 或任何其他需要打开浏览器的东西(我一直在挑战自己,只在我的 iPhone/iPad 上用 Google Colab 编码): 无需 SELENIUM 即可将 Folium 地图转换为 PNG.
首先,我使用 pdfkit 将 folium 地图从 HTML 转换为 PDF,然后我使用 fitz 将 PDF 转换为 PNG,并使用 pillow 将图像剪切出来。
它可以使用很多改进,但它现在对我有用。