2012-05-25 87 views
0

我在构建地理感知iPhone应用程序,我想计算用户位置和两点之间的线条之间的距离。我发现这个答案,做这样的事情:查找地图上线条和点之间的距离

Shortest distance between a point and a line segment

然而,这并不考虑该线是有限的 - 如果用户远离线,但附近的地方无限投影线会是,它会以点和无限投影之间的距离出现,而不是线上最近的点。

+0

我想你是在谈论一个球体表面上的圆,其中“线”总是“圆” – meronix

+0

技术上是的,但是我想我所处理的距离足够小,以至于我可以将它们视为欧几里德坐标而不是球坐标 - 这是否是一种有效的简化? – benwad

+0

也许你可以抽取一组样本点(有合理的资料),并比较每个点,当你达到点的末端或开始远离最后点时离开。 – picknick

回答

1

使用您链接的解决方案如您所描述的那样,为您提供无限的一点。然后检查该点是否在有界线内(即x坐标位于最小和最大x坐标内,y坐标相同)。如果它确实然后返回。否则,最接近的点是终点之一。弄清楚哪个。完成。

+0

@MBo确定了实际的解决方案。 't'的值告诉你一切你需要知道测试点在有限行上的位置。 – acraig5075

1

,如果你有AB线和点P,你应该从点P到AB线,那么距离AP和BP找到距离和选择最短的一个(抱歉坏英文)