R语言leaflet绘制生成的多边形网格时addPolygons报错如何解决
报错原因
核心是参数传递匹配错误:%>%管道符会将前一步输出的地图实例,自动传入下一个函数的第一个形参(即addPolygons的map参数)。而addPolygons的参数顺序为:addPolygons(map, lng = NULL, lat = NULL, ..., data = getMapData(map))
代码中写的addPolygons(p),会把多边形对象p匹配到第二个形参lng(经度参数)上,但没有传入对应的lat(纬度)参数,因此触发报错:addPolygons must be called with both lng and lat, or with neither.
修复方案
显式将多边形对象传入data参数即可,不要按位置隐式传参,修正后的可运行代码:
library(leaflet) library(raster) library(sf) # 注:rgdal已退役,无需加载即可运行本代码 r <- raster(ext = extent(-10,0, -5, 5), res=c(1,1)) p <- rasterToPolygons(r) p <- st_as_sf(p) leaflet() %>% addTiles() %>% addPolygons(data = p)
运行后即可在底图上正常渲染10*10的多边形网格,后续如果需要设置填充色、边框、弹窗等样式,直接在addPolygons内追加对应参数即可。
内容的提问来源于stack exchange,提问作者metamorporpoise
相关产品推荐
相关产品推荐

