我有一个谷歌地图,像这样:如何使用Google Maps API v3多次设置缩放?
var map_options = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: false
};
var map = new google.maps.Map(mapDiv, map_options);
我执行一个Ajax调用,它将在地图上,并在通话的beforeSend
我改变基于用户选择的地点在地图的缩放级别的一些标记。这是所有罚款和花花公子..
$.ajax({
url: myServiceUrl,
dataType: 'jsonp',
beforeSend: function() {
setMapZoom();
},
success: function (data) {
//do work
},
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
function setMapZoom() {
var z_level = getMapZoomLevel(googleplace.geometry.viewport);
map.setCenter(googleplace.geometry.location);
map.setZoom(z_level);
}
起初,这不是在所有的工作,因为地图API的调用是异步..所以这就是为什么我把变焦方法在beforeSend
。
但是,现在我的问题是,它只执行缩放一次。我加载加拿大安大略省多伦多的地图 - 它以多伦多为中心,放大至5级 - 完美。
然后我换到迈阿密,美国佛罗里达州 - 它以迈阿密为中心很好,但它决定了缩放到9级(不是5)电话map.setZoom(9) - 但缩放停留在5.
我很欣赏任何反馈。 :)
谢谢!
我认为你的代码在地图仍然加载瓷砖期间设置了缩放(9)。 – wf9a5m75
setMapZoom()函数在标记被请求之前被调用.. –
我明白了。你能给我一个你的网页链接吗? – wf9a5m75