2012-05-09 22 views
5


Potrzebuję ustawić poziom maxZoom na google.maps.MapTypeId.HYBRID na 21. W rzeczywistości jest on ustawiony na 14 (sprawdzany za pomocą konsoli firebug).
Zmodyfikuj maksymalny poziom powiększenia typu mapy Google:

Ustaw właściwość obiektu google.maps "maxZoom" nie działa w tym przypadku, a ja już próbuję zmodyfikować obiekt google.maps.mapTypes, ale bez powodzenia.

var options = { 
    center: new google.maps.LatLng(lat_centre,lng_centre), 
    zoom: 14, 
    maxZoom: 21, 
    mapTypeId: google.maps.MapTypeId.TERRAIN, 
    panControl: true, 
    zoomControl: true, 
    mapTypeControl: false, 
    scaleControl: false, 
    streetViewControl: false, 
    overviewMapControl: false, 
    disableDoubleClickZoom: true, 
    styles: [ 
     {featureType: "poi", stylers: [{visibility: "off"}]} 
     ]     
    }; 

    map = new google.maps.Map(document.getElementById("map_container"),options); 

I

google.maps.event.addListener(map, 'tilesloaded', function(event){ 

    var mapTypeRegistry = map.mapTypes; 

    var currentMapTypeId = map.getMapTypeId(); 

    var mapType = mapTypeRegistry.get(currentMapTypeId); 

    mapType.maxZoom = 21; 
    }); 

Więc, czy jest jakiś sposób, aby zwiększyć poziom powiększenia hybrydowego mapType?

Dzięki.

+0

można pokazać nam kod, gdy starasz się ustawić zoom Max – Jorge

+0

edytowane za pomocą kodu! – jbrtrnd

Odpowiedz

7

Jeśli zmieniono właściwość mapType obiektu (maxZoom, minZoom, etc ...), zmieniony efekt zajmie miejsce dopiero po typ mapie zostanie zmieniony na tym mapType. Na przykład, jeżeli prąd mapType jest TERRAIN i zmieniłeś TERRAIN „s maxZoom, maxZoom zadziała dopiero po zmianie mapType do innego rodzaju (np ROADMAP, HYBRID, etc ..) i powrót do TERRAIN.

Zamiast ustawić opcję mapType 'maxZoom, należy użyć opcji mapy mapy maxZoom. Dodaj słuchacza do "maptypeid_changed" razie, gdy wystąpi zdarzenie, zmień maxZoom opcję map:

google.maps.event.addListener(map, 'maptypeid_changed', function(event){ 
    if(map.getMapTypeId() === google.maps.MapTypeId.TERRAIN){ 
     map.setOptions({maxZoom:/*For example*/5}); 
    }else 
    if(map.getMapTypeId() === google.maps.MapTypeId.ROADMAP){ 
     map.setOptions({maxZoom:/*For example*/8}); 
    }//Etc... 
    else{ 
     map.setOptions({maxZoom:/*For example*/21}); 
    } 
}); 
+1

Połączyłem Twoje rozwiązanie i moje wydarzenie "tilesloaded". To działa ! Dzięki ! – jbrtrnd

+1

@ JBRTRND-DEV Oczywiście powinno działać z zdarzeniem ''tilesloaded'', ale nie jest to optymalne rozwiązanie. – Engineer

+0

Obiekt google.maps.'Event' jest pisany wielkimi literami. –

Powiązane problemy