由于一些计算,我必须将 GeoPoint 转换为屏幕坐标,对它们进行处理,然后将它们转换回 GeoPoint。
可悲的是,在这些转换之后,新的 GeoPoint 总是距离我想要的点 0-2 毫米(在屏幕上)。
令人惊讶的是,以下代码行已经稍微改变了 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
有没有办法改善这种不准确性。