2012-07-13 13 views
5

Realizzo un'app per Samsung Smart TV 2012 e fondamentalmente HTML5 e JavaScript. Google Maps V3 funziona molto bene, ma una cosa. Sembra che la TV non abbia abbastanza potenza di elaborazione, quindi gli effetti uniformi sembrano orribili. il problema più grande è setZoom() che è liscio. Quindi la mia domanda: esiste un metodo o forse un parametro per disabilitare lo zoom regolare? o forse per disabilitare tutti gli effetti uniformi per l'intera mappa? Grazie !!Google Maps API V3 disabilita lo zoom uniforme

risposta

10

Sì, è possibile disattivare lo zoom regolare! Ma con alcuni ... cambiamenti. In V2 potevi fare solo "disableContinuousZoom()" e risolvere il problema, ma in questa nuova versione, i ragazzi di google non l'hanno implementato.

Questa è la prima possibilità (e il peggio a mio parere ..):

* { 
    -webkit-transition-property: none!important; 
    transition-property: none!important; 
    /* These doesn't affect anything, but, just in case. */ 
    -webkit-animation: none!important; 
    animation: none!important; 
} 

(questa soluzione è da: http://code.google.com/p/gmaps-api-issues/issues/detail?id=3033&q=continuous%20zoom&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Stars%20ApiType%20Internal)

L'altra soluzione, e credo che, il migliore, è ciò che ha implementato in OpenLayers:

/** 
* APIMethod: setMapObjectCenter 
* Set the mapObject to the specified center and zoom 
* 
* Parameters: 
* center - {Object} MapObject LonLat format 
* zoom - {int} MapObject zoom format 
*/ 
setMapObjectCenter: function(center, zoom) { 
    if (this.animationEnabled === false && zoom != this.mapObject.zoom) { 
     var mapContainer = this.getMapContainer(); 
     google.maps.event.addListenerOnce(
      this.mapObject, 
      "idle", 
      function() { 
       mapContainer.style.visibility = ""; 
      } 
     ); 
     mapContainer.style.visibility = "hidden"; 
    } 
    this.mapObject.setOptions({ 
     center: center, 
     zoom: zoom 
    }); 
}, 

Questo è abbastanza strano, perché si utilizza il contenitore carta con gli stili, ma dipende dal vostro caso, forse la soluzione migliore è Thi S!

+1

grande grazie ferran87 !!, la cosa con i CSS hanno lavorato abbastanza bene per me! scusa non ho abbastanza reputazione per votare .. – codeTemplar

+0

Nessun codice problemaTemplar! : p – ferran87

0

anche se non è in gmaps docs, questo funziona per me:

map = new google.maps.Map(el, {animatedZoom: false}); 
+0

Ultimamente il 4/17/2017, questa impostazione non documentata funzionava ancora per me. – MattGerg