2011-03-09 5 views

답변

128

일종의지도에 대한 따라 중심과 범위를 설정 가장자리 (덕분에 라이언!)

double fitFactor = 1.5; 
mapController.zoomToSpan((int) (Math.abs(maxLat - minLat) * fitFactor), (int)(Math.abs(maxLon - minLon) * fitFactor)); 
+1

우수! 정사각형으로 만들고 가운데로 확대하십시오. –

+1

고맙습니다 .. 근무 중입니다 ... – Shaiful

+10

두 geopoints, 내 위치 및 관심 지점을 위해 이것을 사용하고 때로는 오버레이가 화면 가장자리에 매우 가깝다는 것을 알았습니다. 이 문제를 해결하기 위해 mapController.zoomToSpan (int) Math.abs (maxLat - minLat) * fitFactor에'double fitFactor = 1.5'를 추가했습니다. (int) (maxLon - minLon) * fitFactor); '멋진 패딩을 추가합니다. –

2

이것을 달성하는 마법의 방법은 없습니다. 모든 항목의 중심과 범위를 얻기 위해 모든 중복 항목을 반복하는 것이 좋습니다. 점의 일부는 거짓말하지 않도록 패딩을 넣어 : 다음


edit: 라이언이 좋은 제안을했다이

int minLat = Integer.MAX_VALUE; 
int maxLat = Integer.MIN_VALUE; 
int minLon = Integer.MAX_VALUE; 
int maxLon = Integer.MIN_VALUE; 

for (GeoPoint item : items) 
{ 

     int lat = item.getLatitudeE6(); 
     int lon = item.getLongitudeE6(); 

     maxLat = Math.max(lat, maxLat); 
     minLat = Math.min(lat, minLat); 
     maxLon = Math.max(lon, maxLon); 
     minLon = Math.min(lon, minLon); 
} 

mapController.zoomToSpan(Math.abs(maxLat - minLat), Math.abs(maxLon - minLon)); 
mapController.animateTo(new GeoPoint((maxLat + minLat)/2, 
(maxLon + minLon)/2)); 
처럼

관련 문제