Почему Google Maps не меняет масштаб при запросе? - PullRequest
1 голос
/ 08 марта 2011

У меня есть этот фрагмент кода:

function ShowSelection(addr){
    var latLngBounds;

    geocoder.geocode({ "address": addr }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {

            if (selectionArea === undefined || selectionArea === null) {
                selectionArea = new google.maps.Rectangle({
                    map: map
                });
            }

            latLngBounds = results[0].geometry.bounds;
            selectionArea.setBounds(latLngBounds);

            map.panTo(latLngBounds.getCenter());
            map.setZoom(12);
        }
        else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
}

Моя проблема в том, что когда я вызываю map.setZoom (12), карта просто остается на том же уровне масштабирования, на котором она уже была.

Полагаю, лучшим решением было бы установить для него уровень масштабирования, который показывает полное выделение области в окне карты.

Так что я думаю, что это своего рода двойной вопрос:

  1. Как изменить уровень масштабирования при вызове setZoom ()?
  2. Как установить уровень масштабирования таким образом, чтобы нарисованный на карте прямоугольник полностью помещался в границах картыDIV?(Требуемый эффект, который я ищу, - это перемещение карты к центральной точке области выбора, а границы карты должны быть больше границ области выбора, т. Е. Вся область выделения видна на карте безпрокрутка.

1 Ответ

2 голосов
/ 08 марта 2011

Я не уверен, что понял вашу проблему.Код, который вы разместили, геокодирует адрес и рисует прямоугольник с тем же размером границ карты.Итак ...

Как мне изменить уровень масштабирования при вызове setZoom ()?

ну ... все в порядке.Проверьте, не установлен ли масштаб карты на 12

Как установить уровень масштабирования так, чтобы нарисованный на карте прямоугольник полностью помещался в границах карты div?

Вы можете сделать карту соответствующей границам с помощью

map.fitBounds(latLngBounds);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...