0

インターネットに接続せずに Android モバイル デバイスの位置を検出したいと考えています。唯一のオプションは、近くのセルタワーからの情報を使用するために、TelephonyManager クラスがこれに使用できるかどうかを知りたいです (セルの緯度と経度の位置がデータベースで利用可能であると仮定して)?

TelephonyManager.getNeighbouringCellInfo() が NeighbouringCellInfo のリストを提供することは知っています。

私の質問は、このメソッドが返す NeighbouringCellInfo の数は? この情報を使用して三角測量を実行できますか?

そうでない場合、SIM Toolkit を使用して必要な情報を取得し、三角測量を実行できますか?

私の手続きに非常に役立つので、関連する情報を自由に提供してください。

4

1 に答える 1

1

まず第一に、確かに三角測量はできません。三角測量は角度に依存します。私はあなたが何を意味していると思います三辺測量。対照的に、三辺測量は距離に依存します。

距離に基づいて 3 辺測量を行うには、具体的な座標を含むデータベースと、それらの座標の 3 つ以上 (この場合は基地局) までの距離が必要です。ただし、 のドキュメントを見ると、距離を読み取れないNeighboringCellInfoことがわかります。RSSI を取得します。RSSI と距離の関係は線形ではなく、よく理解されていないか、あまり正確ではありませんアンテナの向きや気象条件などによって大きく変化する可能性があります。そのため、単純に 3 つのセルを選択し、それらの相対 RSSI を使用してユーザーを 3 分割できると考えると、最終的には非常にエラーが発生しやすいことがわかります (つまり、ほとんどの場合、まったく間違っています)。これらすべてに加えて、私はそれを信じていませんgetNeighboringCellInfo常に 3 つ以上のタワーを返すことが保証されます (ここで低レベル コードの実装を表示できます)。そのため、私の判断では、どのタワーの強度が最も高いかを見つけて、それにある程度「近い」と言うことが最善であるということです。それ以上のことはできないと思います.

代わりに、GPS を使用することをお考えだと思いますが、GPS を使用したくない理由があると思います。

あなたも知っているかどうかはわかりませんが、TelephonyManager場所の更新も提供する実装があります: here.

(ちなみに、私はかつて同様の三辺測量プロジェクトを行ったことがありますが、私の経験では、非常に正確な受信機と測定値がなければうまくいきません。生の RSSI データもあり、近距離から中距離でもデータのエラー非常に受け入れられませんでした。)

于 2012-06-10T19:02:29.970 に答える