2012-11-10 16 views
4

提示:這是一個帶有HTML的similar post平板電腦上的Mapview:我如何將地圖與偏移量對齊?

在目前的平板電腦實現我的應用程序中,我有一個左側面板上顯示的RelativeLayout的一些信息,如全屏MapView的,就像這樣:

(我的佈局相當瑣碎,我想有沒有必要將它張貼了可讀性)

enter image description here

問題是當我想集中在一個特定的點地圖...如果我使用此代碼:

mapController.setCenter(point); 

我當然會在屏幕的中心獲得點,而不是在空白區域的中心。

我真的不知道在那裏我可以開始打開左側面板進入地圖的偏移座標...

非常感謝任何幫助或建議

回答

3

您可以通過獲取achive你的目標地圖座標從top-leftbottom-right角落除以屏幕大小,以獲得每像素值。

然後,您只需要乘以偏移量並將其添加到原始中心。

示例代碼:

private void centerMap(GeoPoint center, int offX, int offY){ 
    GeoPoint tl = mapView.getProjection().fromPixels(0, 0); 
    GeoPoint br = mapView.getProjection().fromPixels(mapView.getWidth(), mapView.getHeight()); 

    int newLon = offX * (br.getLongitudeE6() - tl.getLongitudeE6())/mapView.getWidth() + center.getLongitudeE6(); 
    int newLat = offY * (br.getLatitudeE6() - tl.getLatitudeE6())/mapView.getHeight() + center.getLatitudeE6(); 

    mapController.setCenter(new GeoPoint(newLat, newLon)); 

} 

使用,您撥打上面的方法與原來的中心和兩個偏移(X和Y)提出申請。

Note:如上所述,上面的代碼將左圖移動爲正偏移值,右圖爲負偏移值。從你的問題的屏幕,您將需要使用負偏移,向左移動地圖,並抵消爲零Y.

問候

+0

聽起來不錯,本週將要爭取確保接受它的答案工作,但聽起來很不錯。 –

+0

你試過了嗎? – Luis