まず第一に、私は英語のネイティブ スピーカーではないので、これは説明が難しい問題です。ご不明な点がございましたら、お気軽にお問い合わせください。
移動していないときは 5 分ごと、移動中は 100 メートルごとに車両の位置を送信して DB に保存するようにプログラムされた GPS 車両追跡デバイスを使用しています。
この DB には、速度、位置、日時、vehicle_gps_id などの値を含む「vehicle_gps」というテーブルがあります。
車両が一定時間以上停止したさまざまな位置を表示する何らかのクエリが必要です (例: 2 分、信号無視)。
たとえば、次のことを教えてくれるものが必要です。「車両は 8:00 に位置 1 (P1) にあり、P1 を出発して P2 に向かい、8.20 に到達しました。車両は 10.20 まで P2 に留まり、P3 に到達しました。 10.50"
テーブル内のレコードの例
vehicle_gps_id | datetime---------- | latitude | longitude | speed
1000------------| 05/16/2012 08:00:00|50.0000 |50.00000 |40 (km/h)
1001------------| 05/16/2012 08:01:00|51.0000 |51.00000 |38 (km/h)
1002------------| 05/16/2012 08:01:23|51.0045 |50.000054 |40 (km/h)
1003------------| 05/16/2012 08:01:40|51.00540 |51.0005430 |39 (km/h)
.
.
.
1040------------| 05/16/2012 08:20:40|53.00540 |53.0005430 |0 (km/h)
1041------------| 05/16/2012 08:25:40|53.00540 |53.0005430 |0 (km/h)
1042------------| 05/16/2012 08:30:40|53.00540 |53.0005430 |0 (km/h)
.
.
.
1060------------| 05/16/2012 10:20:40|53.00540|53.0005430|20 (km/h)
どうすればそのようなことができますか?
これまでのところ、固定位置間の差を分単位で取得できました。そのため、位置間のすべての日付をチェックし、その差が 5 分を超えた場合 (車両が停止したことを意味します) を中断するループが必要でした。
ティア