0

私のマップビューには多くのピンポイントが含まれています。ユーザーがそのアクティビティを実行するたびに、マップはそのようなレベルでズームされる必要があります。正しい3パイントが表示されます。マップは多かれ少なかれズームされるべきではありません。正確に3つである必要があります。マップはコードを介して0から21まで変更できますが、ピンが遠いまたは近い場合に正確な3つのピンが表示されるようにズームレベルを設定する方法はありますか?そのように設定するAPIの機能はありますか?

4

1 に答える 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 に答える