1
GeoPoint point = new GeoPoint(
       (int) (userlocation.getLatitude() * 1E6),
       (int) (userlocation.getLongitude() * 1E6));

上記のようにジオポイントを作成していますが、ユーザーの正確な場所ではなく、500〜600メートル近く離れています。

ここで、userlocationは、ロケーションリスナーから取得しているロケーションです。

ユーザーの場所では、18.453225455645&78.15446456546のような値を取得しますが、プロット中は、18.453225&78.154464、つまり小数点以下6桁しか使用できません。追加の値を使用しようとすると、マーカーが間違った位置を示します(これは、geopointがintの値を必要とするためです)

地図上に正確な位置をプロットするにはどうすればよいですか?

編集:-私は誰もこれについて解決策を持っているとは思わない。私はいくつかのアプリをチェックし、Googleマップよりも正確なmyTaxiという1つのアプリを見つけました。現在、緯度と経度を四捨五入しています。

ありがとうございました

4

1 に答える 1

1

a。6桁の後の最後の数桁を削除するだけでは、小数点以下5桁で約1mの精度が得られるため、500〜600mのエラーは発生しません。

b。GPSまたはその他のロケーションプロバイダーを使用していますか?正確な位置情報が必要な場合は、位置情報プロバイダーとしてGPSのみを使用してください。GPSが正しく機能するには、視線が必要ですが、問題があります。

于 2012-02-22T07:06:12.693 に答える