r - 计算R中多边形和点之间的距离

标签 r gis

我有一个不一定是凸面的没有交点的多边形和这个多边形外的一个点。我想知道如何在二维空间中最有效地计算欧几里得距离。 R中是否有标准方法? ?

我的第一个想法是计算多边形所有线的最小距离(无限延伸,因此它们是线,而不是线段),然后使用线段的起点和毕达哥拉斯计算从点到每条线的距离。

你知道一个实现高效算法的包吗?

最佳答案

您可以使用 rgeos packagegDistance方法。这将需要您准备几何图形,创建 spgeom来自您拥有的数据的对象(我假设它是 data.frame 或类似的东西)。 rgeos 文档非常详细(请参阅 CRAN 页面上的包的 PDF 手册),这是 gDistance 中的一个相关示例。文档:

pt1 = readWKT("POINT(0.5 0.5)")
pt2 = readWKT("POINT(2 2)")
p1 = readWKT("POLYGON((0 0,1 0,1 1,0 1,0 0))")
p2 = readWKT("POLYGON((2 0,3 1,4 0,2 0))")
gDistance(pt1,pt2)
gDistance(p1,pt1)
gDistance(p1,pt2)
gDistance(p1,p2)
readWKT也包含在 rgeos 中。

Rgeos 基于 GEOS 库,这是几何计算中的事实标准之一。如果您不想重新发明轮子,这是一个不错的选择。

关于r - 计算R中多边形和点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15294343/

相关文章:

r - 大矩阵 : solve(crossprod(X)) when dim(X) = 100, 000:5000

Rbinding 大量数据帧

python - 在 Python/GeoPandas 中组合 shapefile

database - 使用ogr2​​ogr将PostGIS表转换为个人地理数据库

r - 使用 gbuffer 缓冲 R 中的(地理)空间点

删除 ggplot2 中 geom_ribbon 的图例键周围的填充

r - 组合栅格堆栈

python - 地理坐标(纬度/经度)上的抖动功能

r - 计算宽数据框中每对坐标之间的距离

r - 基于 2 列的组值