まず第一に、確かに三角測量はできません。三角測量は角度に依存します。私はあなたが何を意味していると思います三辺測量。対照的に、三辺測量は距離に依存します。
距離に基づいて 3 辺測量を行うには、具体的な座標を含むデータベースと、それらの座標の 3 つ以上 (この場合は基地局) までの距離が必要です。ただし、 のドキュメントを見ると、距離を読み取れないNeighboringCellInfo
ことがわかります。RSSI を取得します。RSSI と距離の関係は線形ではなく、よく理解されていないか、あまり正確ではありません。アンテナの向きや気象条件などによって大きく変化する可能性があります。そのため、単純に 3 つのセルを選択し、それらの相対 RSSI を使用してユーザーを 3 分割できると考えると、最終的には非常にエラーが発生しやすいことがわかります (つまり、ほとんどの場合、まったく間違っています)。これらすべてに加えて、私はそれを信じていませんgetNeighboringCellInfo
常に 3 つ以上のタワーを返すことが保証されます (ここで低レベル コードの実装を表示できます)。そのため、私の判断では、どのタワーの強度が最も高いかを見つけて、それにある程度「近い」と言うことが最善であるということです。それ以上のことはできないと思います.
代わりに、GPS を使用することをお考えだと思いますが、GPS を使用したくない理由があると思います。
あなたも知っているかどうかはわかりませんが、TelephonyManager
場所の更新も提供する実装があります: here.
(ちなみに、私はかつて同様の三辺測量プロジェクトを行ったことがありますが、私の経験では、非常に正確な受信機と測定値がなければうまくいきません。生の RSSI データもあり、近距離から中距離でもデータのエラー非常に受け入れられませんでした。)