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)
}
就是這樣。謝謝! – Jono 2011-04-18 10:01:15
在某些情況下,如果在某些操作後立即調用setZoom(..)不起作用。另一個答案描述了當map準備好接受命令時如何使用「空閒」事件執行操作:http://stackoverflow.com/questions/2437683/google-maps-api-v3-can-i-setzoom-after -fitbounds – 2013-07-22 10:52:12
鏈接已損壞。 – candlejack 2015-03-08 22:25:04