Google Maps API V3禁用平滑缩放

时间:2012-07-13 07:52:44

标签: google-maps google-maps-api-3 samsung-smart-tv

我正在制作三星智能电视2012及其基本HTML5和JavaScript的应用程序。 谷歌地图V3非常好,但有一点。 看来电视没有足够的处理能力,所以平滑的效果看起来很糟糕。 最大的问题是setZoom()很顺利。 所以我的问题是:是否有方法或参数来禁用平滑缩放? 或者可能要禁用整个地图的所有平滑效果? 谢谢!

2 个答案:

答案 0 :(得分:10)

是的,你可以禁用平滑变焦!但有一些......变化。在V2你可以做“disableContinuousZoom()”并解决问题,但在这个新版本中,谷歌的人没有实现它。

这是第一种可能性(在我看来是最糟糕的......):

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

(此解决方案来自: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

另一个解决方案,我认为,最好的,是在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
    });
},

这很奇怪,因为你使用带有样式的地图容器,但取决于你的情况,也许最好的解决方案就是这个!

答案 1 :(得分:1)

虽然它不在gmaps docs,但这对我有用:

$fb = new Facebook\Facebook([
    'app_id'     => 'app_id',
    'app_secret' => 'app_secret',
    'default_graph_version' => 'v2.4',
    'default_access_token' => 'access_token'
    ]);

    $response = $fb->get('/page_id');
    $body = $response->getBody();