从多个 GPS 坐标计算到最近海岸的距离

Calculating distance to nearest shore from multiple GPS coordinates

我已经尝试使用对 this question 的响应来解决这个问题,但我无法在我的案例中应用它,因为我有许多坐标分布在全球范围内。

有没有人有办法使用循环计算从一系列点到最近海岸的最小距离(以公里为单位)?这是我使用的点的子集 (DATA HERE)

#setwd and load directories----
setwd("your_wd")
  require (ggplot2)
  require (ggmap)

#build a map to plot distribution of sample sites ----
sites<-read.csv("sites.csv", header=T)

#Using GGPLOT, plot the Base World Map
mp <- NULL
mapWorld <- borders("world", colour="gray50", fill="gray50") # create a layer of borders
mp <- ggplot() +   mapWorld
#Now Layer the sites on top
Lon<-sites$x
Lat<-sites$y
mp <- mp+ geom_point(aes(x=Lon, y=Lat),color="blue", size=3) 
mp

看看 rgeos

library(rgeos)
gDistance(spPoints, spPolygon, byid = TRUE)

spPoints 将是一个保存坐标的 SpatialPoints 对象。 spPolygon 将是一个 SpatialPolygons 个有陆地的物体。请参阅 sp 包。确保两个对象具有相同的投影并且具有合理的投影。