我有一個谷歌地圖,像這樣:如何使用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