Увеличьте маркер google.maps - PullRequest
       1

Увеличьте маркер google.maps

38 голосов
/ 20 февраля 2011

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

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

Я пробовал

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

и

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

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

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

Как вы, ребята, делаете это?

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

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

Ответы [ 3 ]

88 голосов
/ 25 февраля 2011

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

map.setZoom(17);
map.panTo(curmarker.position);
8 голосов
/ 19 марта 2014

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

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

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

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 голосов
/ 20 февраля 2011

это новый экземпляр объекта карты, который вы создаете? если это так, вы можете просто получить объект, который содержит местоположение и масштаб, а затем передать его на карту при его инициализации следующим образом (взято из учебника по основам 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...