我无法正确缩放到标记。
我正在尝试将视图切换到指定的标记,但无法使ge tit工作。
我试过
map.setCenter(location);
map.setZoom(20);
和
map.fitBounds(new google.maps.latLngBounds(location,location));
但是在第一种情况下,我只是在没有注册中心变化的情况下放大,而在第二种情况下,我会在一个巨大的区域内得到这个概述,而不是放大。
也许这个问题可以通过设置从setcenter到setzoom的时间来解决,但这对我来说是一个丑陋的黑客,所以更喜欢更优秀的解决方案。
你们是怎么做到的?
此外 - 如果可以在不改变内容的情况下显示信息窗口,那将真正是一个加分,但最重要的是放大到正确位置的标记,关闭。
非常感谢你。答案 0 :(得分:87)
解决方案原来是
map.setZoom(17);
map.panTo(curmarker.position);
答案 1 :(得分:8)
我想我会在这里发布一个答案,因为人们想要一些示例代码。
一旦将标记添加到地图中,我也需要能够放大并居中。
希望这有助于某人。
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);
}
});
}
答案 2 :(得分: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);
}