2011-05-29 54 views
3

可能重複顯示的區域:
How can I determine if a geopoint is displayed in currently viewable area?Claculate目前在Android的MapView

是否存在被我可以知道有多少面積(在地球點而言)的任何有效的方法我的地圖視圖正在相對於當前縮放級別顯示?

和幾何圖形一樣,我們知道左上角可能從(0,0)開始,右下角可能在(320,480)結束,有什麼方法可以讓我知道當前左上角的GeoPoint是(76.3213,54.5678),右下(112.2345,132.4567)?

最終,我想要查詢一個數據庫,向我發送與GeoLocations相關的信息大於起點和小於終點的信息。

回答

1

有幾個方法可以做到這一點:

一,使用MapView.getProjection(),它可以讓你的屏幕座標和GeoPoints之間的轉換。

二,使用組合MapView.getMapCenter(),MapView.getLatitudeSpan()MapView.getLongitudeSpan()並做一點數學運算。在你的情況下,第一個選項聽起來更好,但你的里程可能會有所不同

無論哪種方式,MapView的文檔位於全here

1

使用

mapview.getTop(), mapview.getBottom(), mapview.getLeft(), mapview.getRight() 

獲得MapView的邊緣的位置。 然後使用

mapView.getProjection().fromPixels(x, y); 

獲得座標。當你得到這些資料時,將其存儲在數據庫中,並且查詢它們很簡單。