2012-05-09 22 views
5


Necesito establecer el nivel maxZoom del google.maps.MapTypeId.HYBRID en 21. De hecho, está configurado en 14 (inspeccionado con la consola Firebug).
Modificar el nivel de zoom máximo de un Google Map Tipo

establecer la propiedad del objeto google.maps 'MaxZoom' no funciona en este caso, y ya tratar de modificar el objeto google.maps.mapTypes, pero sin éxito.

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); 

Y

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

    var mapTypeRegistry = map.mapTypes; 

    var currentMapTypeId = map.getMapTypeId(); 

    var mapType = mapTypeRegistry.get(currentMapTypeId); 

    mapType.maxZoom = 21; 
    }); 

Entonces, ¿hay una manera de aumentar el nivel de zoom del híbrido mapType?

Gracias.

+0

¿Nos puede mostrar el código cuando se está tratando de establecer el zoom Max – Jorge

+0

Editado con el código! – jbrtrnd

Respuesta

7

Si ha cambiado la propiedad del objeto mapType (maxZoom, minZoom, etc ...), el efecto cambiada tendrá un lugar sólo después se cambiará el tipo del mapa para que mapType. Por ejemplo, si la corriente es mapTypeTERRAIN, y se cambió TERRAIN 's maxZoom, maxZoom funcionará sólo después de cambiar mapType a otro tipo (por ejemplo ROADMAP, HYBRID, etc ..) y de nuevo a TERRAIN.

En lugar de establecer la opción mapTypemaxZoom, utilice la opción maxZoom del mapa central. Añadir escucha para "maptypeid_changed" caso, y cuando se produce el evento, cambiar maxZoom opción de 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

He combinado su solución y mi evento 'tilesloaded'. Funciona ! Gracias ! – jbrtrnd

+1

@ JBRTRND-DEV Por supuesto, debería funcionar con el evento ''tilesloaded'', pero no es una solución óptima. – Engineer

+0

El objeto google.maps 'Evento' está en mayúscula –

Cuestiones relacionadas