我有两个数据集:一个在地图上有300k多个网格点,另一个有75个区域质心。两个数据集都具有网格点/区域质心的长/纬度。我试图将每个网格点与每个区域相匹配,以使网格点与区域质心的距离<=100公里。在R中我该怎么做?
我试过geosphere软件包:
merged %>%
distGeo(c(merged$longitude, merged$latitude), c(geo$centroid_longitude, geo$centroid_latitude))
我也尝试过distm
命令,但它也不起作用。
首先:您想如何处理几个区域100公里内的网格点?
为什么不缓冲区域质心,然后与网格点进行空间连接?
library(sf)
# Assuming your layers are in a meter based CRS
district_buffers <- st_buffer(district_centroids, dist=100000)
merged <- st_join(grid_points, district_buffers)
现在,merged
sf点层将具有与其相交的区域缓冲区的属性。