緯度、経度、日付、時刻、engine_state列を持つ MySQL データベース テーブルがあります。
2 つの日付の間に車両が移動した距離を計算したいと考えています。クエリを作成して計算する方法が説明されているスレッドを見つけましたが、エンジンの状態に基づいて計算を行う必要があるため、私のケースはもう少し複雑です。
簡単な方法は、すべてのデータを照会して Java で実行することですが、すべてのデータを取得するのに約 20 秒かかり、私のニーズには非常に時間がかかります。
難しい方法は、データベースに対してクエリを実行し、それを計算して結果だけを返すように指示することです。
だからここに私が持っているデータの例があります:
Latitude Longtitude Date Time Engine
row 1: 23.3232 42.43344 130510 120030 1
row 2: 23.3233 42.43354 130510 120031 1
row 3: 23.3243 42.43321 130510 120032 1
row 4: 23.3243 42.43321 130510 120033 0
row 5: 23.3243 42.43321 130510 120034 0
row 6: 23.3243 42.43321 130510 120035 1
row 7: 23.3254 42.43332 130510 120036 1
and so on....
「エンジン」列は1 - エンジンが作動しているか、0 - エンジンが作動していない可能性があります
だから私は、エンジンの状態 = 0 の座標を除いて、 2 つの日付間の距離を計算したいと考えています。したがって、この場合、行 1 と行 4 の間の距離と、行 5 と行 7 の間の距離を合計する必要があります。
また、テーブルのデータがソートされていない場合があるため、クエリは最初にデータベースに日付と時刻で並べ替えるように指示する必要があることにも注意してください。
MySQL を使用してそのようなクエリを作成する方法を知っている人はいますか?
PS私が使用したい距離を計算するための式はHaversineです(Vincetyではありません)