7

Phonegap と JQuery を使用してモバイル アプリを作成しています。

このアプリは、ユーザーの経度と緯度を収集してデータベースに保存し (PHP スクリプト - Web サービスを使用)、何らかのアルゴリズムを使用してトラフィックの有無を検出します。私が必要とするのは、データベースから互いに近いすべての経度と緯度の値を取得することです。たとえば、同じ通り/200m の範囲内です。

データベースに 5 つの経度/緯度が互いに近く (同じ通り A)、3 つの経度/緯度がいくつかの通り B で互いに近く、他の通りでユーザーをランダムに表すリストがあるとします。 . お互いに近い経度/緯度の値を検出する方法を誰か教えてもらえますか? 値は、MySQL データベースに個別の値として保存しています。つまり、1 つのフィールドが経度で、もう 1 つのフィールドが緯度です。

互いに近い経度/緯度を取得したら、通り A のユーザーと通り B のユーザーの間の中心点を見つけて、交通渋滞としてマークする必要があります (他の検出に基づいて)。

4

1 に答える 1

5

Haversine 式を調べる必要があります。下記を参照してください:

SELECT id, (3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance 
FROM markers 
HAVING distance < 25 
ORDER BY distance;

これにより、入力された経度/緯度のペアから 25 マイル以内にあるすべてのレコードが返されます。

于 2012-12-19T11:12:26.107 に答える