2

移動経路を保存する最善の方法を見つけようとしているところです。

もう少し説明してみましょう。マップ上で多数の車が動き回っており、それらが車列に入っているかどうか、またその時期を判断したいとします。パスだけを保存すると、それらが同じ道路に沿って移動したことがわかりますが、同時にそこにあったかどうかはわかりません。開始時刻と終了時刻を保存できますが、2 台の車両の速度の変化は考慮されません。これを保存して達成する明白な方法は考えられないので、解決策を実装しようとする前に何か不足している場合に備えて、そこに質問を出すと思いました. それで、誰かが私が知らないことを知っていますか?

ありがとう、アンドリュー

4

1 に答える 1

0

まあ、それはあなたが持っている運動情報の種類によって異なります。次のようなテーブルがいくつか設定されている場合:

車両 (ID、タイプ、容量など)

MovementPoint(VehicleId、緯度、経度、DateTime、AverageSpeed)

これにより、次のように、2 台の車が同じポイントにプラスまたはマイナス 5 分で向かうかどうかを照会できます。

Select * from Vehicle v INNER JOIN MovementPoint mp on mp.VehicleId = v.Id
WHERE v.Id = @FirstCarID 
AND EXISTS 
    (
     SELECT 1 FROM Vehicle v2 INNER JOIN MovementPoint mp2 on mp2.VehicleId = v2.Id
     WHERE v2.Id = @SecondCarId 
     AND mp2.Latitude = mp.Latitude AND mp2.Longitude = mp.Longitude
     AND mp2.DateTime BETWEEN DATEADD(minute,-5,mp.DateTime) AND DATEADD(minute,5,mp.DateTime)
    )

特定の時間枠を持つ複数の車両間で共通する複数のポイントを照会することもできます。

また、緯度と経度の値が互いに特定の半径内にあることを確認するクエリを作成することもできます。

于 2011-05-18T00:05:21.277 に答える