2011-04-18 4 views
10

지도에서 마커/정보창을 업데이트하면서 Google지도를 초기화하고 매 30 초마다 주기적으로 초기화합니다. 경계를 사용하여 자동으로 확대되지만 모든 아이콘/정보가 표시되는지 확인합니다.Google지도 v3지도가 초기화 된 후 확대/축소 수준 조정

내 문제는 정보창이지도의 가장자리에 배치되어 종종 끊어지는 문제입니다. 지도가 업데이트 될 때마다 '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.zoom는 당신에게 최초의 줌 레벨이 아닌 현재를 말할 것 같은(), 줌 레벨을 얻을 수 map.getZoom를 사용하는 것이 좋습니다.

+0

그 중 하나입니다. 감사! – Jono

+4

일부 작업을 수행 한 직후에 setZoom (..)이 호출되지 않는 경우가 있습니다. 또 다른 답변은지도가 명령을 받아 들일 준비가되었을 때 "유휴"이벤트를 사용하여 작업을 수행하는 방법을 설명합니다. http://stackoverflow.com/questions/2437683/google-maps-api-v3-can-i-setzoom-after -fitbounds –

+0

링크가 끊어졌습니다. – candlejack

관련 문제