2013-08-26 14 views
6

Podążając za moim poprzednim pytaniem Google maps responsive resize Chciałbym zaimplementować inny poziom powiększenia oparty na zmianie rozmiaru okna, więc jeśli okna przeglądarki "mniej niż" zastosuj x liczbę powiększania i jeśli "większy niż "automatycznie zastosuj inny poziom powiększenia.Mapy Google ustawiają różne zbliżenia w zależności od zmiany rozmiaru okna

Poniższy kod działa doskonale w zakresie od recentering mapy na okna zmiany rozmiaru, muszę zastosować nowe poziomy powiększenia do niego:

var map; 
function initialize() { 
    var mapOptions = { 
    center: new google.maps.LatLng(40.5472,12.282715), 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
google.maps.event.addDomListener(window, "resize", function() { 
    var center = map.getCenter(); 
    google.maps.event.trigger(map, "resize"); 
    map.setCenter(center); 
    map.setZoom(zoom level needs to be automatically set according to window size); 
}); 
+0

prawdopodobnie najprościej określić granice, które chcesz zobaczyć i użyć map.fitBounds zamiast map.setCenter. – geocodezip

+0

Czy mapa musi zawierać określony zestaw punktów? Czy są jakieś inne szczegóły, które możesz podać? – rsnickell

+0

mapa musi zawierać konkretny obszar z określoną LatLng, wartości są podane w powyższym kodzie, znaczniki będą zawarte w tym obszarze –

Odpowiedz

4

Construct obszar, który chcesz, aby zawsze być w widoku poprzez tworzenie LatLngBounds i zadzwoń pod numer map.fitBounds() zgodnie z sugestią geocodezip.

+0

Gdybym chciał, aby zawsze wyświetlana była pełna mapa, jakie byłyby moje LatLangBounds? – brandozz

+0

Wybrałem moje południowo-wschodnie i północno-zachodnie narożniki, ale w czasach kiedy zmieniam rozmiar mojej przeglądarki, poziom powiększenia eksponuje to, co ustawiłem poza moje współrzędne. – brandozz

Powiązane problemy