R 里程半径上的限制标记

R 里程半径上的限制标记,r,leaflet,R,Leaflet,我有X设施和Y设施及其lat/long,并用传单绘制了它们的地图。问题是我如何将Y限制在X位置25英里以内 我曾尝试过搜索,但没有找到多少解决我的问题的方法,或者至少我认为没有 Z<-leaflet() %>% addTiles() %>% addMarkers(lng = Y$longitude, lat = Y$latitude, icon = YIcon, group = "BASE")%>% addMarkers(lng = X$Longitude,

我有X设施和Y设施及其lat/long,并用传单绘制了它们的地图。问题是我如何将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
Z%addTiles()%%>%addMarkers(lng=Y$经度,纬度=
Y$latitude,icon=YIcon,group=“BASE”)%%>%addMarkers(lng=
X$经度,纬度=X$纬度,图标=XIcon)
Z

除非我在您的问题中遗漏了什么,否则您只需使用测量距离,并创建/显示符合您约束条件的标记即可

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

要在X设施25英里范围内对Ys设施进行ge改造,您必须:

  • 将X和Y变换为a投影投影。使用st_transform()函数

  • 计算X的缓冲区。假设Xbuffer或者一个简单的haversine公式,如果你不想包含一个额外的库()我有问题,因为我没有看到distance dunction使用的语法?我有lat和long分开,语法是什么,如何使用这个函数?它是映射对象上的一个方法。你能给出一个完整的例子吗?距离函数要求latlng我有X$Latiture和Y$Latitude,以及它们的共轴经度。如果没有关于如何使用语法的代码帮助,我看不到如何使用距离函数。你必须创建了一个映射对象(var mymap=L.map(…)。。。使用此对象计算距离:mymap.distance(L.latLng(XLat,XLon),L.latLng(yla,YLon))