2012-07-13 21 views
5

Tworzę aplikację dla Samsung Smart TV 2012 i jej w zasadzie HTML5 i JavaScript. Google Maps V3 działa bardzo dobrze, ale jedno. Wygląda na to, że telewizor nie ma wystarczającej mocy obliczeniowej, więc gładkie efekty wyglądają okropnie. największym problemem jest setZoom(), który jest płynny. Moje pytanie: czy istnieje metoda, a może parametr wyłączający płynne powiększanie? lub może wyłączyć wszystkie gładkie efekty dla całej mapy? Dzięki!Google Maps API V3 wyłącz płynne powiększanie

Odpowiedz

10

Tak, można wyłączyć płynne powiększanie! Ale z niektórymi ... zmianami. W V2 możesz zrobić tylko "wyłączyćContinuousZoom()" i rozwiązać problem, ale w tej nowej wersji faceci google nie zaimplementowali go.

Jest to pierwsza możliwość (i najgorsze moim zdaniem ..):

* { 
    -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; 
} 

(rozwiązanie to jest z: 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)

Innym rozwiązaniem, i myślę, że najlepsze, jest co wdrożył w 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 
    }); 
}, 

jest to dość dziwne, bo korzystać z mapy pojemnik ze stylów, ale zależy od przypadku, być może najlepszym rozwiązaniem jest jes s!

+1

wielkie dzięki ferran87 !!, rzecz z css pracował całkiem dobre dla mnie! przepraszam, nie mam wystarczającej reputacji, aby głosować .. – codeTemplar

+0

Bez problemu codeTemplar! : p – ferran87

0

chociaż to nie na gmaps docs, to działa na mnie:

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

Tak niedawno jak 4/17/2017, ta nieudokumentowana sceneria nadal działała dla mnie. – MattGerg

Powiązane problemy