由於一些計算,我必須將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