私のアプリケーションでは、ユーザーの移動中に自分のジオロケーションを記録します。座標の間のすべての距離を合計するMySQL - キロバイト駆動
今、1日の駆動キロを含むレポートを作成する必要があります。
検索私はこのクエリを見つけましたが、実際には動作しますが、私の計算とは異なる浮動小数点数を返します(私はキロメートルではないと思います)。
SELECT SUM(SQRT(POW(A.LAT - B.LAT, 2)+POW(A.LON - B.LON, 2)))
FROM LOCATIONS A
JOIN LOCATIONS B ON (A.ID = B.ID - 1)
私は基本的に同じことが必要ですが、キロメートルです。
誰でも手伝ってもらえますか?
PS:私の英語は理解できますか?
編集: クエリの結果は0.09276581556846489で、5.35 kmのようになります。
私はクライアント側で距離を計算するためにjavascriptを使用しています。
function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {
var p = 0.017453292519943295; // Math.PI/180
var c = Math.cos;
var a = 0.5 - c((lat2 - lat1) * p)/2 +
c(lat1 * p) * c(lat2 * p) *
(1 - c((lon2 - lon1) * p))/2;
return 12742 * Math.asin(Math.sqrt(a)); // 2 * R; R = 6371 km
}
スクリプト言語を使用していますか? –
質問を編集し、サンプルデータと希望の結果を提供してください。 –
あなたの英語は理解できますが、あなたのスキーマは理解できません。テーブルにid 1のポイントx、y、zが含まれている場合、xとzの間の距離は計算されませんが、xからz、zからx、y、y、z、 y。 – symcbean