如何根据坐标寻找最近的地方

How to look for the closest place based on coordinates

我有一个包含多个气象站的主数据库。每个站都有十进制坐标。下面只是一个例子,因为坐标是组成的

stationid lon lat
1a        80  104
1b        84  110
1c        85  111

此外,我有一个较小的地点数据集。我需要将每个地方与主数据库中最近的气象站相匹配(希望有指定的距离阈值)

  place lon   lat 
  2a    80.5  104.1
  3b    83    109

因此生成的较小数据库将显示

  place lon   lat    stationid
  2a    80.5  104.1  1a
  3b    83    109    1b

将不胜感激任何想法

尝试 geosphere::distm + max.col

df2$stationid <- df1$stationid[max.col(-distm(rev(df2[-1]), rev(df1[-1])))]

这给出了

  place  lat   lon stationid
1    2a 80.5 104.1        1a
2    3b 83.0 109.0        1b