如何只用两根手指在谷歌地图内移动?

时间:2016-06-25 09:39:54

标签: javascript google-maps mobile google-maps-api-3 user-experience

移动用户面临很大问题:

我有一个有width: 100%的谷歌地图,所以当用户滚动窗口时,如果触摸地图“内部”的屏幕,滚动它将仅用于地图而不是用于所有窗口...(昨天我的父亲在地图内滚动了3分钟XD)

滚动窗口可能会触摸屏幕的边框,但是非常非常严格,并非所有用户都明白这一点。 我不想要width100%的地图,所以我必须找到其他解决方案......

这是只有在用两根手指触摸时才会使地图可拖动,几乎是在缩放到缩放时...

但我可以使用google maps事件吗?

也许:

    google.maps.event.addListener(map, 'dblclick', function(event){
      this.setOptions({draggable:true});
    });

但也许在第一次点击地图时我应该提醒(用地图中的div)可以用两根手指移动地图吗?

你怎么看?和代码是否正确?

非常感谢,抱歉我的英语和奇怪的问题:D

2 个答案:

答案 0 :(得分:14)

如果您使用的是API v3.27或更高版本。在初始化地图时,只需添加属性gestureHandling: 'Cooperative'

像这样

var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 4,
          center: myLatLng,
          gestureHandling: 'cooperative'
        });

More Info Here

或者如果您想在创建地图后执行此操作,请执行

map.setOptions({gestureHandling: 'cooperative'});

More Info Here

答案 1 :(得分:3)

虽然这是一个非常奇怪的要求,但您可以尝试以下方法;

document.addEventListener('touchmove', function(e) {
    e.preventDefault();
    var touch = e.touches[0];
    if(e.touches.length == 2){
      //This means there are two finger move gesture on screen
      googleMapsReference.setOptions({draggable:true});
    }
}, false);

我没有在移动设备上对此进行测试,但它应该为您提供一个起点。