mapview仅显示单个多边形而非多色多边形的问题排查
解决mapview仅显示单个多边形的问题
我有一个Shapefile,使用以下代码加载并通过mapview绘制时,地图只显示单个多边形而非多个地块:
library(sf) library(mapview) subs <- read_sf("cheyenne-kimball-all-owners.shp") m <- mapview(subs, zcol = "acres")
可能的原因及解决方法:
几何类型为MultiPolygon,所有地块被合并
先检查数据的几何类型:class(subs$geometry)如果返回
sf_MULTIPOLYGON,说明所有地块被打包成了一个多要素几何对象。用st_cast拆分单个多边形后再绘图:subs_single <- st_cast(subs, "POLYGON") m <- mapview(subs_single, zcol = "acres")属性表仅含一行记录
运行nrow(subs)查看记录数,如果结果是1,说明Shapefile本身的属性表只有一条记录,所有几何要素都绑定在这一行。这种情况可以先拆分几何,再根据原始数据补充对应属性(若有)。mapview默认合并渲染要素
尝试添加burst = TRUE参数,强制按单个要素拆分显示:m <- mapview(subs, zcol = "acres", burst = TRUE)
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

