1

我想解决一个问题:给定一个 CLLocationCoordinate2D(坐标),它应该位于 GMSPath(路径)上,或者非常接近(~100m)。如何找到从坐标到路径的最短距离?

尝试比较路径上的所有坐标并计算距离,然后找出最小值,但这在计算成本方面不是一个好方法......

4

1 回答 1

0

您需要使用坐标+三角几何。

如果您知道路径的起点和终点,则可以在这些点之间画一条假想线,并找到一个从您的 CLLocationCoordinate2D 垂直于该假想线的点。

如果您的起始位置称为 CLLocationCoordinate2D start,而您的结束位置是 CLLocationCoordinate2D end,则首先需要找到该直线的方程斜率。这将是 ABS(start.latitude - end.latitude) 转换为米,同样 ABS(start.longitude - end.longitude) 转换为米。

然后你的坡度=(高度/宽度)

你的假想线方程是 y = slope * x - 你的假想原点是你的起始位置。

看看这个

于 2013-07-13T23:49:59.773 回答