在R中使用sf几何对象设置Leaflet边界

12

我想使用sf包提取边界框(例如st_bbox),并使用fitBounds将这些坐标传递给叶片。

最好的方法是什么? 这里有一个类似的帖子:here:我们不想对所有坐标取平均值,因为我们已经有了可以使用的边界框,并且我们不想使用setView设置缩放级别。以下是我目前正在尝试的示例 -

以印第安纳州为例:

require(USAboundaries);require(sf)
state <- us_boundaries(states="Indiana")
st_bbox(state)


       xmin      ymin      xmax      ymax 
    -88.11186  37.78194 -84.78395  41.75956

我想将其轻松转换为 Leaflet 的 fitBounds 可以解释的格式。或许可以这样做:

我希望以一种 Leaflet 的 fitBounds 可以理解的格式来表达,类似于这样:

map.fitBounds([
  [-88.11186, 37.78194],
  [-84.78395, 41.75956]
);
1个回答

17

怎么样:

library(sf)
library(leaflet)
library(USAboundaries)

state <- us_boundaries(states = "Indiana")

bbox <- st_bbox(state) %>% 
  as.vector()

leaflet() %>% 
  addTiles() %>% 
  fitBounds(bbox[1], bbox[2], bbox[3], bbox[4])

输入图像描述


1
非常有效。与我想的类似,比我在多个线程中找到的平均坐标解决方案更高效。 - KennyC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接