如何获取Mapdeck输出的可分享独立HTML格式地图文件
mapdeck导出独立可分享HTML文件方案
默认生成的mapdeck地图HTML会依赖外部加载的JS/CSS资源,未安装对应库的用户打开时会因为资源加载失败无法正常显示,可以通过以下方法导出所有资源内嵌的单文件HTML:
R环境操作
使用htmlwidgets包的saveWidget函数,开启selfcontained参数即可将所有依赖资源全部内嵌到单个HTML文件:
library(mapdeck) library(htmlwidgets) # 构造你的地图对象 map_obj <- mapdeck(token = "<YOUR_MAPBOX_TOKEN>") %>% add_scatterplot( data = sample_data, lat = "lat_column", lon = "lon_column", fill_colour = "value_column" ) # 导出独立HTML文件 saveWidget( widget = map_obj, file = "sharable_map.html", selfcontained = TRUE, libdir = NULL )
如果导出时提示依赖缺失,可先执行htmltools::resolveDependencies(htmlwidgets::getDependency("mapdeck"))预缓存所有需要的资源后再重试。
Python环境操作
Python版mapdeck的to_html方法提供standalone参数,开启后会自动内嵌所有依赖资源:
import mapdeck import pandas as pd # 构造示例数据 sample_data = pd.DataFrame({ "lat": [39.9, 31.2, 23.1], "lon": [116.4, 121.5, 113.3], "value": [12, 21, 18] }) # 初始化地图对象 map_obj = mapdeck.Mapdeck(token="<YOUR_MAPBOX_TOKEN>") map_obj.scatterplot( data=sample_data, lat="lat", lon="lon", fill_colour="value" ) # 导出独立HTML文件 map_obj.to_html("sharable_map.html", standalone=True)
注意:上述方法导出的HTML如果使用了Mapbox官方底图,打开时仍需要联网加载底图瓦片,如需完全离线使用,需要提前将自定义底图瓦片资源内嵌到文件中,该操作会大幅提升最终HTML文件的体积。
内容的提问来源于stack exchange,提问作者ZWANG
相关产品推荐
相关产品推荐

