質問

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

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

ここでユーザーロケーションは私がロケーションリスナーから得ている場所です

ユーザーの場所では、18.453225455645&78.15444456546のような値を取得しますが、プロット中は18.453225&78.154464のみを使用できます。つまり、小数はわずか6桁です。余分な値を使用しようとすると、マーカーは間違った場所を示しています。(それはgeopointニーズの値がintの値によるものです)

マップ上で正確な場所をプロットするにはどうすればよいですか?

編集: - 誰もこれについて解決策があるとは思わない。いくつかのアプリをチェックして、Googleマップがそれをどのように得るかわからないよりも精度のあるMyTaxiと呼ばれる1つのアプリを見つけました。現在、私は緯度と経度を丸めています。

ありがとうございました

役に立ちましたか?

解決

a。 6桁後に最後の数桁を削除するだけで、小数点以降に5桁が約1mの精度が得られると、500〜600 mのエラーが500〜600 mのエラーが得られません。

b。 GPSまたは他のロケーションプロバイダーを使用していますか?正確な場所が必要な場合は、GPSのみをロケーションプロバイダーとして使用します。 GPSは正しく動作するために視線が必要になる必要がありますが、キャッチがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top