查找所有点与多边形边界之间的最小距离

Ren*_*ira 2 r spatial spatstat

我想找到点和多边形边界之间的最小距离(所有点都位于多边形内).如果可能,我如何提取值?,这样我就可以找到个体数量与边界距离之间的相关性.

多边形为.SHP格式,并指向X/Y坐标.

如有任何遗漏信息,请告诉我!非常感谢您的帮助!

Edz*_*sma 6

单位方形多边形:

library(sp)
x = cbind(c(0,1,1,0,0),c(0,0,1,1,0))
pol = SpatialPolygons(list(Polygons(list(Polygon(x)), "ID")))
Run Code Online (Sandbox Code Playgroud)

单位平方中的随机点:

set.seed(131)
pts = SpatialPoints(cbind(runif(10), runif(10)))
plot(pol)
points(pts, col = 'red')
Run Code Online (Sandbox Code Playgroud)

计算距离:

library(rgeos)
gDistance(pts, pol, byid = TRUE) # will be 0, all inside
gDistance(pts, as(pol, "SpatialLines"), byid = TRUE) # dist to line
Run Code Online (Sandbox Code Playgroud)

添加到情节:

text(coordinates(pts),
  as.character(
    round(as.vector(gDistance(pts, as(pol, "SpatialLines"), byid = TRUE)), 3)),
pos = 4)
Run Code Online (Sandbox Code Playgroud)

使用readOGRin package 将shapefile中的多边形数据读入R.rgdal