如何从现有地图确定leaflet :: setView()的设置?

时间:2017-09-08 14:41:54

标签: r leaflet

在R中构建带有传单的新地图(在RStudio中工作)时,我使用setView()来设置初始地图中心和缩放级别。我理解函数的语法,并通过一堆试验和错误,可以非常接近我想要的。类似的东西:

library(leaflet); library(magrittr)

leaflet::breweries91 %>% 
    leaflet() %>% 
    # see what breweries are close to Ingolstadt 
    # without putting it or anything else in the center of the frame
    setView(11, 49,  zoom = 9) %>% 
    addTiles() %>% 
    addMarkers()

我通过将地图缩放到我喜欢的地方,然后测试坐标和缩放级别,直到我得到的东西接近我用鼠标到达的地方,来到上面的setView()参数。

我希望能够将现有地图设置为我喜欢的设置,然后以某种方式从该地图中检索当前的平移/缩放设置,并在我的setView()功能中使用这些设置。

有没有办法从我放大/平移的现有地图中检索这些设置?我没有兴趣以编程方式达到“正确”的设置,并且更感兴趣的是缩小“我点击了一下,找到了我喜欢的东西”与“我在某些坐标中编码”之间的差距。

要清楚,我确定有一种平均距离的方法,写一个居中函数或determine initial setView() settings based on the data like this question,但我特别询问获取地图用户数据,而不是计算某些东西,主要是因为我通常不知道我想要显示什么作为地图的中心,直到我创建了一个初始版本并且已经在地图本身中探索了数据。

1 个答案:

答案 0 :(得分:2)

mapview 有一个名为addMouseCoordinates的函数,它会在地图顶部呈现一个小条带,显示有关鼠标光标位置的详细信息(包括缩放)。使用此功能,您只需将地图平移/缩放到您喜欢的位置,将光标放在地图的中心,然后使用显示的坐标和缩放级别为最终地图构建setView

library(mapview) # loads leaflet automatically

breweries91 %>% 
  leaflet() %>% 
  # see what breweries are close to Ingolstadt 
  # without putting it or anything else in the center of the frame
  setView(11, 49,  zoom = 9) %>% 
  addTiles() %>% 
  addMarkers() %>%
  addMouseCoordinates(style = "basic")

# or for the initial scanning simply
mapview(breweries91)