Ответ 1
Решение оказалось
map.setZoom(17);
map.panTo(curmarker.position);
Я не могу правильно масштабировать маркер.
Я пытаюсь переключить представление на указанный маркер, но не могу использовать его.
Я пробовал
map.setCenter(location);
map.setZoom(20);
и
map.fitBounds(new google.maps.latLngBounds(location,location));
но в первом случае я просто увеличиваю масштаб без регистрации центра, и во втором случае я получаю этот обзор на огромной области, но не увеличился вообще.
Возможно, эта проблема может быть решена путем установки timout из setcenter в setzoom, но для этого уродливого взлома, поэтому предпочтительнее было бы лучшее решение.
Как вы это делаете?
Кроме того - если инфоиндуст может отображаться без изменения содержимого, это действительно будет плюсом, но самое главное - увеличить маркер в нужном месте, закрыть.
Большое вам спасибо.
Решение оказалось
map.setZoom(17);
map.panTo(curmarker.position);
Я думал, что я опубликую ответ здесь, так как людям нужен какой-то примерный код.
Мне тоже нужно было иметь возможность приближать и центрировать, как только маркер был добавлен на карту.
Надеюсь, это поможет кому-то.
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);
}
});
}
- это новый экземпляр создаваемого вами объекта карты? если это так, вы можете просто иметь объект, который содержит местоположение и масштаб, а затем передать этот объект на карту при его инициализации таким образом (взято из учебника по основам 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);
}