gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:44:00 29 4
gpt4 key购买 nike

我有一个不一定是凸面的没有交点的多边形和这个多边形外的一个点。我想知道如何在二维空间中最有效地计算欧几里得距离。 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com