里程半径上的限制标记

时间:2019-09-09 14:15:13

标签: r leaflet

我有X设施和Y设施以及它们的经/纬度,并且已经用传单将它们映射了。问题是如何将Y限制在X个位置的25英里之内?

我尝试进行搜索,但是没有找到解决我问题的东西,或者至少我认为没有解决问题。

Z<-leaflet() %>% addTiles() %>% addMarkers(lng = Y$longitude, lat = 
  Y$latitude, icon = YIcon, group = "BASE")%>% addMarkers(lng = 
  X$Longitude, lat = X$Latitude, icon = XIcon)
Z

2 个答案:

答案 0 :(得分:0)

除非我错过了您的问题,否则您只需使用https://leafletjs.com/reference-1.5.0.html#map-distance测量距离并仅在标记符合您的约束条件时创建/显示标记

答案 1 :(得分:0)

我认为您可以通过在使用传单之前执行一些空间操作来解决问题。所有必需的功能都在 sf

要在X设施的25英里内获得Ys的便利,您必须:

  • 将X和Y转换为 Projected 投影。使用st_transform()函数。
  • 计算X的缓冲区。假设Xbuffer <-st_buufer(X,40200)。单位为米。
  • 使用st_join()函数和一个附加过滤器在Xbuffer中选择Y点。在这里,您将创建一个新对象(Y2)。
  • 使用传单绘制X和Y2。

请注意,一个可重复的示例可以帮助给出更好的答案。 您可能会在空间操作here

中找到其他帮助