いくつかの計算のために、GeoPoint を画面座標に変換し、それらを使って何かを行ってから、GeoPoint に戻す必要があります。
悲しいことに、これらの変換の後、新しい GeoPoint は常に、必要なポイントから (画面上で) 0 ~ 2 mm 離れています。
驚くべきことに、次のコード行はすでに GeoPoint を少し変更しています。
Projection projection = map.getProjection();
Log.d("bevore", geoPoint.getLatitudeE6() +" "+geoPoint.getLongitudeE6());
Point pt = new Point();
projection.toPixels(geoPoint, pt);
geoPoint = projection.fromPixels(pt.x, pt.y);
Log.d("after", geoPoint.getLatitudeE6() +" | "+geoPoint.getLongitudeE6());
出力は次のとおりです。
D/bevore(31252): 53106803 | 8852244
D/after(31252): 53106802 | 8852240
この不正確さを改善する方法はありますか。