2013-02-04 177 views
4

在我的應用程序中,我在Google地圖上使用標記顯示地點。但是,我正在標記所有可用的地方,我不想這樣做。我想顯示其僅通過取得地圖嵌入到屏幕上的位置座標,如下圖所示:Android - 如何從地圖視圖獲取地圖座標

enter image description here

我只想通過發送座標獲取是在這個範圍內從源可用的地方的地圖。我不確定我是否應該從屏幕的角落捕捉所有4座標?

任何人都可以幫我弄清楚這個嗎?

回答

4

您可以使用此方法得到那些:

yourMapView.getMap().getCameraPosition(); 

這將返回一個​​對象。相機的座標由字段目標和由字段縮放給出。現在你應該能夠計算屏幕邊角的近似座標。

+0

感謝Zarkaos。我仍然不知道該怎麼辦?這個鏈接有什麼可以幫助我。 http://stackoverflow.com/questions/10985487/android-opengl-es-2-0-screen-coordinates-to-world-coordinates –

+1

我不是在Android中使用地圖的專家:但您的鏈接似乎適用於OpenGl的不同情況。我不眨眼,你可以在你的應用程序中使用它.. – ZarkDev

+0

好的。獲得攝像頭位置後,我怎樣才能將其解析爲緯度值?因爲我想我應該比較這個經緯度值與我的數據庫中的其他地方緯度經度值。 –

1

要獲取地圖的左上和BottomRight座標在任何時間,使用以下命令:

public GeoPoint getCurrentTL(MapView map){ 
    Projection pr = map.getProjection(); 
    return pr.fromPixels(0, 0); 
} 

public GeoPoint getCurrentBR(MapView map){ 
    Projection pr = map.getProjection(); 
    return pr.fromPixels(map.getWidth(), map.getHeight()); 
} 
+0

感謝您的答案。看看你有沒有評論Zarkoas的答案。 –

0

所以,這是一個老問題,但這裏有一個勁取在這個問題上。

你可以要求可見區域時,地圖上向上(可見)具有:

VisibleRegion vRegion = mMap.getProjection().getVisibleRegion(); 
LatLng upperLeft = vRegion.farLeft 
LatLng lowerRight = vRegion.nearRight;