【发布时间】:2019-08-18 23:33:47
【问题描述】:
我想计算预定方位 (0,45,90,135,180,225,270,315) 的空间点到空间线(或多边形)的最近距离。
这个想法是计算海岸线上多个海湾的暴露指数。下面提供一个简单的例子:
创建线条
library(sp)
coords<-structure(list(lon = c(-6.1468506, -3.7628174, -3.24646,
-3.9605713, -4.4549561, -4.7955322, -4.553833, -5.9710693, -6.1468506),
lat = c(53.884916, 54.807017, 53.46189, 53.363665, 53.507651, 53.363665, 53.126998, 53.298056,53.884916)), class = "data.frame", row.names = c(NA,-9L))
l<-Line(coords)
sl<-SpatialLines(list(Lines(list(l),ID="a")),proj4string=CRS("+init=epsg:4326"))
创建点
pt<-SpatialPoints(coords[5,]+0.02,proj4string=CRS("+init=epsg:4326"))
剧情
plot(sl)
plot(pt,add=T)
【问题讨论】:
-
你不应该使用
c来命名对象,因为它是一个函数。除了您的点与折线相交:sf::st_intersects(sl, pt, sparse=FALSE). -
已编辑。点代表海岸线上的一个位置,如果不在线上,它们将接近。我假设这些距离会返回零 - 我应该编辑这个点吗?
-
我已经移动了点
标签: r spatial nearest-neighbor sp