如何从CLLocationCoordinate2D到GMSPath找到距离?

时间:2013-06-01 09:09:27

标签: google-maps-sdk-ios

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

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

1 个答案:

答案 0 :(得分:0)

您需要使用cordinate + trigonometry geometry。

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

如果您的起始位置称为CLLocationCoordinate2D start,并且您的结束位置是CLLocationCoordinate2D end,则首先需要找到此行的等式的斜率。这将是ABS(start.latitude - end.latitude)转换为米,同样ABS(start.longitude - end.longitude)转换为米。

然后你的斜率=(身高/宽度)

你的假想线的等式是y = slope * x - 你想象的起源是你的起始位置。

查看this