由于一些计算,我必须将GeoPoint转换为屏幕坐标,请对它们进行一些操作,然后将它们转换回GeoPoint。Android:MapView投影不准确
不幸的是,经过这些转换之后,新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
有没有办法来improove这种不准确性。
这可能是一个解决问题? (即覆盖许多地点的一个像素)。要测试,请采用'after'地点,并通过相同的流程运行。如果这是一个解决问题,它应该没有变化。如果它在投影中出现错误,那么它应该以相同的边距出现。 – 2012-09-23 13:44:39
你说得对。它保持不变。这是否意味着没有办法改进它? – anonymous 2012-09-23 15:13:52
您应该可以提高地图的分辨率(可能通过放大)。您只需要充分展开,每个经纬度地理坐标就可以单独解析为不同的像素。 – 2012-09-23 21:12:54