2

AndroidのdistanceTo()関数とdistanceBetween()関数は、宛先のlatとlonに到達したときに結果を返します。ただし、緯度と経度が変わらない場合をカバーする必要があります(たとえば、高い建物が周りにある通りを歩いたり、建物に入ったり、曲がり角を増やして短い距離を歩いたりする場合)。それらの条件について、Androidで距離を計算する方法は?

私がstackoverflowの他の回答を検索していたとき、私はここを通り抜けました。

私は次の答えを試しました。コードは良いですが、そのコードで距離を計算しようとすると、歩いていないときでも一定の値になります。

2点間の距離の計算を手伝ってください

4

1 に答える 1

6

建物に入るとGPS緯度/経度がありますが、GPSカバレッジがないため、その後は変更されません。ですから、問題は、そのような場合をどのように処理するかということです。私はその興味深い問題にこのようにアプローチします:

  • (GPSだけでなく)位置情報にもWiFiネットワーク情報を使用します。

  • センサーを使用します。方向センサーと加速センサーがあります。歩数を数える機能を備えた電話をいくつか覚えています(GPSなしのSonyEricssonでそれを持っていました)。

  • アクセラレータセンサーは、人が動いているかどうかの情報を提供し、歩数を数えるのに役立ちます(平均歩距離値の推定を行う必要があります)。人がエレベータに乗っているのか、上がっているのか下がっているのかを簡単に判断し、おおよその階数を見積もることができます。

  • 方向センサーは、動きの変化の方向(角を曲がる)に関する情報を提供する場合があります。

  • GSM信号強度ベースの場所。からのNeighboringCellInfoはandroid.telephony、周囲のセルのRSSI(受信信号強度表示)に関する情報を提供しますが、三角測量に基づいて位置を正確に計算するには(約50 mの精度)、基地局の正確な位置が必要です(これは、オペレーター)。

そのような見積もりがどれほど不正確であるかは理解されていますが、他のアプローチは見当たりません。

いずれにせよ、探索/開発するのがとても楽しいものです。

于 2011-05-25T07:55:12.513 に答える