1

問題を解決したい: CLLocationCoordinate2D (coord) が与えられた場合、GMSPath(path) にかなり近い (~100m) に配置する必要があります。座標からパスまでの最短距離を見つけるにはどうすればよいですか?

パス上のすべての座標を比較して距離を計算し、最小値を見つけようとしていますが、計算コストの点で良い方法ではありません...

4

1 に答える 1

0

座標+三角法ジオメトリを使用する必要があります。

パスの始点と終点がわかっている場合は、この点の間に架空の線を引き、CLLocationCoordinate2D からこの架空の線に垂直な点を見つけることができます。

開始位置が CLLocationCoordinate2D start であり、終了位置が CLLocationCoordinate2D end である場合、最初にこの線の方程式の勾配を見つける必要があります。これは、ABS(start.latitude - end.latitude) がメートルに変換され、同様に ABS(start.longitude - end.longitude) がメートルに変換されます。

次に、勾配=(高さ/幅)

架空の線の式は y = 勾配 * x - 架空の原点が開始位置です。

これを見てください

于 2013-07-13T23:49:59.773 に答える