onCreate() 내의 setZoom()을 하드 코딩하면 매우 오래된 것으로 느껴지고 처음에는 MapView가 모든 GeoPoints/오버레이 아이템은지도에 표시됩니다.안드로이드 MapView - 모든 ItemizedOverlay가 표시 될 때까지 자동으로 줌 설정
어떻게 자동으로 수행 할 수 있습니까?
onCreate() 내의 setZoom()을 하드 코딩하면 매우 오래된 것으로 느껴지고 처음에는 MapView가 모든 GeoPoints/오버레이 아이템은지도에 표시됩니다.안드로이드 MapView - 모든 ItemizedOverlay가 표시 될 때까지 자동으로 줌 설정
어떻게 자동으로 수행 할 수 있습니까?
일종의지도에 대한 따라 중심과 범위를 설정 가장자리 (덕분에 라이언!)
double fitFactor = 1.5;
mapController.zoomToSpan((int) (Math.abs(maxLat - minLat) * fitFactor), (int)(Math.abs(maxLon - minLon) * fitFactor));
이것을 달성하는 마법의 방법은 없습니다. 모든 항목의 중심과 범위를 얻기 위해 모든 중복 항목을 반복하는 것이 좋습니다. 점의 일부는 거짓말하지 않도록 패딩을 넣어 : 다음
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));
처럼
우수! 정사각형으로 만들고 가운데로 확대하십시오. –
고맙습니다 .. 근무 중입니다 ... – Shaiful
두 geopoints, 내 위치 및 관심 지점을 위해 이것을 사용하고 때로는 오버레이가 화면 가장자리에 매우 가깝다는 것을 알았습니다. 이 문제를 해결하기 위해 mapController.zoomToSpan (int) Math.abs (maxLat - minLat) * fitFactor에'double fitFactor = 1.5'를 추가했습니다. (int) (maxLon - minLon) * fitFactor); '멋진 패딩을 추가합니다. –