我正在繪製基於用戶查詢繪製MapView上的引腳的地圖應用程序。我試圖縮放地圖以適應所有的結果,但我遇到了一個看似奇怪的情況。Android:MapView.GetLatitudeSpan(),GetLongitudeSpan()異常?
我有兩個變量設置:
latSpan是任何結果點
lonSpan的最大緯度和最小緯度之間的差異是任何的最大經度和最小經度之差結果點
這種方法
while ((mapView.getLatitudeSpan()) < latSpan) || (mapView.getLongitudeSpan() < lonSpan)){
mapController.zoomOut();
}//end of while loop
應該縮小,以確保一個將針腳放在可視地圖屏幕上。
但我遇到了一些相當奇怪的事情。 mapView.getLatitudeSpan()和mapView.getLongitudeSpan()的結果通常比我的latSpan和lonSpan值大,所以MapController不會縮小到足夠大。
我的地圖放大到相當遠 - 級別15或更高。
作爲一個例子,一組搜索結果的結果如下:
latSpan = 17928
lonSpan = 11636
mapView.getLatitudeSpan()= 21933
mapView.getLongitudeSpan ()= 20598
基於這些數字,您不會認爲MapController需要縮小。然而,屏幕上方和下方都有針腳繪製。我改變我的WHILE循環讀取
while ((mapView.getLatitudeSpan() - 6000) < latSpan...
這有幫助,但正確的查詢仍然會導致問題。
但真正的問題是,爲什麼會發生這種情況?
感謝您的答覆。根據文檔,MapView.getLatitudeSpan()方法應該返回微觀角度。我的代碼中的計算與您的計算非常相似,所以數學不是問題。我弄清楚了這個問題,這是一種反常現象。看到我對這個問題的回答。再次感謝。 – pjd