如何在R中找到地图上从点到多边形边缘的最短距离(点在多边形外部)

时间:2014-09-17 02:46:08

标签: r

我试图找到从点到多边形的最短距离。我在地图的海岸线上有一个点,我需要从这一点到海岸线外的多边形的距离。多边形是不规则形状(特定日期水面上的污染物位置)。点和多边形都是经度/纬度坐标,我可以将多边形叠加到地图上。我试着用(geosphere包)

dist2Line(-88.1253, 30.2564, may.17.10A, distfun=distHaversine)

但是我收到一条错误消息“dist2Line中的错误(-88.1253,30.2564,may.17.10A,distfun = distHaversine):   未使用的参数(may.17.10A)'

我尝试在点坐标周围添加括号,但得到了另一条错误消息。海岸线上的点的坐标是-88.1253,30.2564,多边形是17.17A。该函数声明我可以使用SpatialPolygons *对象作为变量,我想

may.17.10A

会是一个吗?

多边形的代码来自具有.dbf,.prj,.sbn,.sbx,.sph和.shx文件的目录:

may.17.10 <- readOGR("directory/20100517_Composite", "20100517_Composite")
may.17.10A<- spTransform(may.17.10, CRS("+proj=longlat +datum=WGS84"))

正如我在之前的问题中所提到的,我是R的新手并且没有先前的编码经验,所以我非常感谢我能得到的任何帮助。谢谢你的任何建议!

1 个答案:

答案 0 :(得分:0)

现在调用dist2Line的方式使它看起来像有4个参数,但签名只有3个。根据文档的第一个参数应该是

  

点的经度/纬度。可以是两个数字的向量,2列的矩阵(第一个是经度,第二个是纬度)或SpatialPoints *对象。

所以试试

dist2Line(c(-88.1253, 30.2564), may.17.10A, distfun=distHaversine).