0

GPSからデータを受信し、MySQLデータベースに保存しています。次の列があります。

ユーザーID(int)
緯度(ダブル)
経度(ダブル)
水平精度(ダブル)

水平方向の精度は緯度/経度を中心とした半径であるため、同等の確率のユーザーはこの領域の任意のポイントにいることができます。

2人のユーザーが交差していた確率を調べる必要があります。しかし、私には30メートルの視界もあります。水平精度が0の場合、緯度/経度の半径が30メートルの2つの円の交点の面積を測定できます。しかし、私の場合、水平方向の精度は5から3000の範囲である可能性があるため、それは不可能です。通常、それは私の視界を超えています。

この円錐の内側の円の水平精度の半径が+30メートルで、外側の円の水平精度の半径がである2つの円錐の交点の面積を測定できると思います。しかし、この解決策は少し複雑なようです。

それと他の可能な解決策についてのいくつかの考えを聞きたいです。

MySQL Spatial拡張機能を確認しましたが、私が見る限り、そのような計算を行うことはできません。

ありがとう。

4

1 に答える 1

0

私はあなたが説明しているような問題に取り組みました。私がアプローチした方法は、緯度/経度(世界座標)をX / Y(デカルト座標)に変換することでした。次に、ピタゴラスの定理a ^ 2 + b ^ 2 = c^2を適用して問題を解決しました。

まず、緯度/経度座標を変換する必要があります。

Xを取得するには、半径に角度の正弦(cos)を掛けます(注:この角度はラジアンとして表す必要があります)。

Yを取得するには、上記と同じことを行いますが、正弦関数(sin)を使用します。

度をラジアルに変換するには角度にPIの量(約3.14159 ...)/180を掛けます。

ラジアン=角度*(PI / 180);

c ^ 2"CSquared"を解くにはc=SQRT(a * a + b * b);

ラジアンへの度の詳細については、http://www.mathwarehouse.com/trigonometry/radians/convert-degee-to-radians.phpをご覧ください。

詳細については、Lat/LongからX/Y座標への変換:http://www.mathsisfun.com/polar-cartesian-coordinates.html

私は通常、ask.comで質問することにより、この種の問題に必要な情報を見つけます。

ではごきげんよう。

アラン

于 2012-01-06T16:04:23.977 に答える