私が使用していてMapView
、このマップには多くのmarkers
. ズームをマップ内のすべてのマーカーに自動的に設定する方法を教えてください。
1198 次
1 に答える
5
すべてのマーカーを含む境界を形成する 4 つのコーナーを取得する必要があります。次に、領域の中心に移動しながら、スパンを含むようにズームします。それが理にかなっていれば。以下のコードを参照してください。
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);
}
double fitFactor = 1.5;
mapController.zoomToSpan((int) (Math.abs(maxLat - minLat) * fitFactor), (int)(Math.abs(maxLon - minLon) * fitFactor));
mapController.animateTo(new GeoPoint( (maxLat + minLat)/2,
(maxLon + minLon)/2 ));
于 2011-11-24T09:38:17.447 に答える