2011-01-15 38 views
2

これは私の問題です。私が作業しているシステムは、マップ上に920x920メートルの領域を表すためにエリアと呼ばれるオブジェクトを使用しています。ただし、Areaに与えられている唯一の参照は、グリッドの正方形の左上隅の緯度と経度です。GPS位置(緯度/経度)が一定の範囲内にあるかどうかを判断する... [Android]

ユーザーの現在のGPS位置が特定の範囲内にあるかどうかを調べる必要があるため、この場合に該当するかどうかを確認する関数を作成しています。

私が苦労しているのは、実際には位置確認を行うための最善の方法を考えています。ユーザーの正確な緯度/経度とグリッド正方形の左上の緯度/経度がわかります...この問題に近づく最善の方法は何でしょうか?

ご協力いただきありがとうございます。

+0

これを設定しようとしているところに問題があるようです。あなたが正方形の領域だけを扱う場合、重複する領域を持たずに世界を一意に描くことはできません(ポールの近くで何が起こるか考えてみてください)。 – templatetypedef

+0

可能な複製http://stackoverflow.com/questions/4287780/detecting-whether-a-gps-coordinate-falls-within-a-polygon-on-a-map –

+0

@templatetypedef - システムは小さな都市のみを対象としていますそれは本当に懸念事項ではありません - いずれにしても、私は(あまりよく文書化されていない)既存のシステム上に構築しているので、私はこのやり方に制限されています... – Sam

答えて

3

ステップ#1:ポートthese calculations(または同等の)Javaへとあなたの座標を

ステップ#2が与えられているどのように多くの緯度または経度920メートルの程度を決定するためにそれらを使用する:ステップ#1からの値を使用しあなたの四角形の右下隅の緯度/経度座標を決定する

ステップ3:ユーザの経度が左右の値の間にあり、ユーザの緯度が上下の値の間にあるかどうかを確認

キーの変曲点(0度の緯度e、+/- 180度の緯度など)。

+0

ありがとうございます - 私はこれを試してみましょう! – Sam

+0

うん、このアプローチは素晴らしい作品です。どうもありがとう! – Sam