2016-08-23 6 views
-3

2つのLat long pairの間の時間差広告距離を見つけようとしています。2つのLat-Longペアの時間差と距離を確認します。

私はいくつかのレコードを

SELECT A.ID, A.latitude, A.longitude, A.drive_time, (B.drive_time -  A.drive_time) AS time_difference, 6367 * acos(cos( 
      radians(A.latitude)) 
      * cos(radians(B.latitude)) 
      * cos(radians(B.longitude) - radians(A.longitude)) + sin(radians(A.latitude)) 
      * sin(radians(B.latitude)) as distance 
    FROM mapper A INNER JOIN mapper B ON B.ID = (A.ID + 1); 
+0

Haversineは、時間ではなく球面距離を与えます。それでは問題は何ですか? –

+0

これで距離を計算しています。しかし、それは構文エラーを与える。私は最終的にデータの速度を計算したいと考えています。 –

+0

エラー/出力を教えてください。 –

答えて

0

のための時間の誤った値が、私は私の解決策を見つけた気にしないで取得しています。

SELECT A.ID, A.latitude, A.longitude, B.drive_time, 6371000 * 2 *  ASIN(SQRT(  
     POWER(SIN((A.latitude - abs(B.latitude)) * pi()/180/2),  
     2) + COS(A.latitude * pi()/180) * COS(abs(B.latitude) *  
     pi()/180) * POWER(SIN((A.longitude - B.longitude) *  
     pi()/180/2), 2))) as distance  ,time_to_sec(TIMEDIFF(B.drive_time,A.drive_time)) AS time_difference 
FROM mapper A left JOIN mapper B ON B.ID = A.ID + 1 
関連する問題