我想解决一个问题:给定一个CLLocationCoordinate2D(coord)它应该位于GMSPath(路径)上,或者非常接近(~100m)。如何找到从坐标到路径的最短距离?
尝试比较路径上的所有坐标并计算距离,然后找出最小值,但就计算成本而言,这不是一个好的方法......
答案 0 :(得分:0)
您需要使用cordinate + trigonometry geometry。
如果您知道路径的起点和终点,则可以在这些点之间绘制一条虚线,并找到一个从CLLocationCoordinate2D垂直于此虚线的点。
如果您的起始位置称为CLLocationCoordinate2D start,并且您的结束位置是CLLocationCoordinate2D end,则首先需要找到此行的等式的斜率。这将是ABS(start.latitude - end.latitude)转换为米,同样ABS(start.longitude - end.longitude)转换为米。
然后你的斜率=(身高/宽度)
你的假想线的等式是y = slope * x - 你想象的起源是你的起始位置。
查看this