Подтвердить что ты не робот

Увеличить масштаб до маркера google.maps

Я не могу правильно масштабировать маркер.

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

Я пробовал

map.setCenter(location);
map.setZoom(20);

и

map.fitBounds(new google.maps.latLngBounds(location,location));

но в первом случае я просто увеличиваю масштаб без регистрации центра, и во втором случае я получаю этот обзор на огромной области, но не увеличился вообще.

Возможно, эта проблема может быть решена путем установки timout из setcenter в setzoom, но для этого уродливого взлома, поэтому предпочтительнее было бы лучшее решение.

Как вы это делаете?

Кроме того - если инфоиндуст может отображаться без изменения содержимого, это действительно будет плюсом, но самое главное - увеличить маркер в нужном месте, закрыть.

Большое вам спасибо.

4b9b3361

Ответ 1

Решение оказалось

map.setZoom(17);
map.panTo(curmarker.position);

Ответ 2

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

Мне тоже нужно было иметь возможность приближать и центрировать, как только маркер был добавлен на карту.

Надеюсь, это поможет кому-то.

function getPoint(postcode) {

    var geocoder = new google.maps.Geocoder();

    geocoder.geocode( { 'address': postcode + ', UK'}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {

            var marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });

            map.setZoom(10);
            map.panTo(marker.position);
        }
        else {
            alert('Geocode was not successful for the following reason: ' + status);
        }
    });
}

Ответ 3

- это новый экземпляр создаваемого вами объекта карты? если это так, вы можете просто иметь объект, который содержит местоположение и масштаб, а затем передать этот объект на карту при его инициализации таким образом (взято из учебника по основам Gmaps http://code.google.com/apis/maps/documentation/javascript/basics.html:

function initialize() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}