我需要在地图中将传单地图的设置设置为新的多边形添加:
observeEvent(input$do, {
shapeComuna = paste0("cl_",input$interval,"comunas_geo")
archComuna = paste0("shapefiles/cl_",input$interval,"comunas_geo")
comuna <- readOGR(dsn = archComuna, layer = shapeComuna)
names(comuna)[1] <- "ID"
shapeData2 <- spTransform(comuna, CRS("+proj=longlat +ellps=GRS80"))
proxy <- leafletProxy("mymap")
proxy %>% clearShapes() %>% addPolygons(
data = shapeData2,
smoothFactor = 0.3,
fillOpacity = 0.45,
stroke = TRUE,
opacity = 1,
weight = 1.8,
popup = shapeData2$NOMBRE,
layerId = shapeData2$ID,
group = "Comunas"
) %>% setView()
})
当我点击输入$ do时,清除所有多边形并打印新的多边形,但我无法动态设置该新多边形的视图。
是否存在一个用于搜索新多边形并在其中设置视图的表单?或者需要取一个shapefile并将其传递给setView?
答案 0 :(得分:0)
您确实可以从形状文件中获取边界,请参阅Here。
因此,在您的代码中,您可以执行以下操作:
df = do.call(rbind,lapply(shapeData2, function(x)
{data.frame(lon = c(min(x$coords[,1]),max(x$coords[,1])),lat = c(min(x$coords[,2]),max(x$coords[,2]))})
然后使用
map %>% fitBounds(min(df$lon), min(df$lat), max(df$lon), max(df$lat))
相应地修改mpa的界限。注意:由于缺少reproducible example,因此我没有使用此代码,但它可能会指向正确的方向。