私のマップビューには多くのピンポイントが含まれています。ユーザーがそのアクティビティを実行するたびに、マップはそのようなレベルでズームされる必要があります。正しい3パイントが表示されます。マップは多かれ少なかれズームされるべきではありません。正確に3つである必要があります。マップはコードを介して0から21まで変更できますが、ピンが遠いまたは近い場合に正確な3つのピンが表示されるようにズームレベルを設定する方法はありますか?そのように設定するAPIの機能はありますか?
1 に答える
2
ポイントは、マップ上に表示したいすべてのジオポイントです。
private void Zoom() {
int minLatitude = Integer.MAX_VALUE;
int maxLatitude = Integer.MIN_VALUE;
int minLongitude = Integer.MAX_VALUE;
int maxLongitude = Integer.MIN_VALUE;
for (GeoPoint p : points) {
int lati = p.getLatitudeE6();
int lon = p.getLongitudeE6();
maxLatitude = Math.max(lati, maxLatitude);
minLatitude = Math.min(lati, minLatitude);
maxLongitude = Math.max(lon, maxLongitude);
minLongitude = Math.min(lon, minLongitude);
}
mapController.zoomToSpan(Math.abs(maxLatitude - minLatitude),
Math.abs(maxLongitude - minLongitude));
mapController.animateTo(new GeoPoint((maxLatitude + minLatitude) / 2,
(maxLongitude + minLongitude) / 2));
}
于 2012-09-21T11:33:32.533 に答える