如何在文本文件中找到最近的lat和long?

sac*_*cvf 3 r

我有一个文本文件包含如下信息:

   Grid Point Index, Latitude, Longitude, Cell
 167,    0.000000,    9.432301, 1350
 169,    0.000000,    9.544590, 1350
 171,    0.000000,    9.656878, 1350
 173,    0.000000,    9.769168, 1350
 175,    0.000000,    9.881457, 1350
 177,    0.000000,    9.993747, 1350
 179,    0.000000,   10.106036, 1386
 181,    0.000000,   10.218326, 1386
Run Code Online (Sandbox Code Playgroud)

我想找出这个lat和long的相应网格点和单元格:0.000000,11.902665.好吧,我可以手动完成,但这需要花费很多时间.可以确定没有与我的输入相对应的精确坐标,所以我希望文件中最接近的坐标与输入相对应.任何人都可以帮我构建这个功能

   insert lat and long
Run Code Online (Sandbox Code Playgroud)

然后将在文件中找到最接近的lat-long以及相应的网格点索引和单元格

阅读文件

      das= read.table("C:\\Users\\lonlatnter.txt", sep=",",header=TRUE)
Run Code Online (Sandbox Code Playgroud)

zx8*_*754 6

gdist来自Imap包的函数计算大圆距离.试试这个:

install.packages("Imap")
library("Imap")

#Dummy data
dat <- read.table(text="   Grid Point Index, Latitude, Longitude, Cell
 167,    0.000000,    9.432301, 1350
 169,    0.000000,    9.544590, 1350
 171,    0.000000,    9.656878, 1350
 173,    0.000000,    9.769168, 1350
 175,    0.000000,    9.881457, 1350
 177,    0.000000,    9.993747, 1350
 179,    0.000000,   10.106036, 1386
 181,    0.000000,   10.218326, 1386", header=T, sep=",")

#MyPoint
myLatitude <- 0.000000 
myLongitude <- 11.902665

#gdist Geodesic distance (great circle distance) between points
dat$Dist <- gdist(lat.1=dat$Latitude,
                       lon.1=dat$Longitude,
                       lat.2=myLatitude,
                       lon.2=myLongitude)

#Output the shortest distance - Min
dat[dat$Dist == min(dat$Dist),]

#Output
#   Grid.Point.Index Latitude Longitude Cell     Dist
#8              181        0  10.21833 1386 101.2418
Run Code Online (Sandbox Code Playgroud)