将地图网格点与R中经度和纬度的最近区域质心进行匹配



我有两个数据集:一个在地图上有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)

现在,mergedsf点层将具有与其相交的区域缓冲区的属性。

最新更新