2011-04-18 64 views
10

我正在初始化Google地圖和更新地圖上的marker/infowindows(每30秒)。 我使用邊界自動放大,但確保所有標記/ infowindows都可見。Google地圖v3在地圖初始化後調整縮放級別

我的問題是,infowindows被放置在地圖的邊緣,並經常被切斷。 所以,我需要每次更新地圖時縮小'1'。 我可以使用'map.zoom'來確定當前的縮放級別並重新計算新的期望值,但我不知道如何設置這個新值。
只能在初始化地圖時設置縮放參數嗎?

當然這很簡單?

下面是我的'更新'功能;

function updatePage() { 
//clear current markers 
clearOverlays(); 

var location1 = new google.maps.LatLng(team1data.lat, team1data.lon); 
var location2 = new google.maps.LatLng(team2data.lat, team2data.lon); 
var bounds = new google.maps.LatLngBounds(); 
bounds.extend(location1); 
bounds.extend(location2); 
map.fitBounds(bounds); 
var curZoom = map.zoom; 
console.log(curZoom); 
var newZoom = (curZoom - 1); 
console.log(newZoom); 



var infowindow1 = new google.maps.InfoWindow({ 
content: '<div style=\"height:100px;width:230px;font-size:12px;\"><span style="font-weight:bold;">' + team1data.user + ' (' + team1data.location + '): </span>' + team1data.tweet + '</div>' 
}); 

var infowindow2 = new google.maps.InfoWindow({ 
content: '<div style=\"height:100px;width:230px;font-size:12px;\"><span style="font-weight:bold;">' + team2data.user + ' (' + team2data.location + '): </span>' + team2data.tweet + '</div>' 
}); 

//can add as many markers to the map as you like 
var marker1 = new google.maps.Marker({ 
    position: location1, 
    map: map, 
    title: "Team 1" 
}); 
markersArray.push(marker1); 

google.maps.event.addListener(marker1, 'click', 
function() { 
    infowindow.open(map, marker); 
}); 

var marker2 = new google.maps.Marker({ 
position: location2, 
map: map, 
title:"Team 2" 
}); 
markersArray.push(marker2); 

infowindow1.open(map, marker1); 
infowindow2.open(map, marker2); 

setTimeout("team1tweets()", 30000) 
} 

回答

22

根據API參考,您可以使用map.setZoom(number);

https://developers.google.com/maps/documentation/javascript/reference#methods

這也是更好地使用map.getZoom()來獲得縮放級別,因爲map.zoom只會告訴你的初始縮放級別,而不是當前的一個。

+0

就是這樣。謝謝! – Jono 2011-04-18 10:01:15

+4

在某些情況下,如果在某些操作後立即調用setZoom(..)不起作用。另一個答案描述了當map準備好接受命令時如何使用「空閒」事件執行操作:http://stackoverflow.com/questions/2437683/google-maps-api-v3-can-i-setzoom-after -fitbounds – 2013-07-22 10:52:12

+0

鏈接已損壞。 – candlejack 2015-03-08 22:25:04

相關問題