我有一个像这样的谷歌地图:
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。
我很感激任何反馈。:)
谢谢!