如何只用两根手指在 google 个地图中移动?
How to move inside google maps only with two fingers?
我有一个移动用户的大问题:
我有一个 google 地图 width: 100%
所以当用户滚动 window 如果触摸屏幕 "inside" 地图,它会滚动仅适用于地图而不适用于所有 window...(昨天我父亲在地图内滚动了 3 分钟 XD)
滚动 window 可以触摸屏幕边框,但非常严格,并非所有用户都理解这一点。
我不想要 width
小于 100%
的地图,所以我必须找到其他解决方案...
这将使地图只有在用两根手指触摸时才可拖动,几乎在缩放时...
但是我可以使用哪个 google 映射事件?
也许:
google.maps.event.addListener(map, 'dblclick', function(event){
this.setOptions({draggable:true});
});
但也许第一次点击地图时我应该提醒(在地图上有 div)可以用两根手指移动地图??
你怎么看?代码是否正确?
非常感谢,对不起我的英语和奇怪的问题:D
虽然这是一个很奇怪的要求,但您可以尝试以下操作;
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);
我没有在移动设备上测试过这个,但它应该给你一个起点。
如果您使用的是 API v3.27 或更高版本。初始化地图时只需添加 属性 gestureHandling: 'Cooperative'
像这样
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng,
gestureHandling: 'cooperative'
});
或者,如果您想在创建地图后执行此操作,请执行
map.setOptions({gestureHandling: 'cooperative'});
More Info Here
我有一个移动用户的大问题:
我有一个 google 地图 width: 100%
所以当用户滚动 window 如果触摸屏幕 "inside" 地图,它会滚动仅适用于地图而不适用于所有 window...(昨天我父亲在地图内滚动了 3 分钟 XD)
滚动 window 可以触摸屏幕边框,但非常严格,并非所有用户都理解这一点。
我不想要 width
小于 100%
的地图,所以我必须找到其他解决方案...
这将使地图只有在用两根手指触摸时才可拖动,几乎在缩放时...
但是我可以使用哪个 google 映射事件?
也许:
google.maps.event.addListener(map, 'dblclick', function(event){
this.setOptions({draggable:true});
});
但也许第一次点击地图时我应该提醒(在地图上有 div)可以用两根手指移动地图??
你怎么看?代码是否正确?
非常感谢,对不起我的英语和奇怪的问题:D
虽然这是一个很奇怪的要求,但您可以尝试以下操作;
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);
我没有在移动设备上测试过这个,但它应该给你一个起点。
如果您使用的是 API v3.27 或更高版本。初始化地图时只需添加 属性 gestureHandling: 'Cooperative'
像这样
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng,
gestureHandling: 'cooperative'
});
或者,如果您想在创建地图后执行此操作,请执行
map.setOptions({gestureHandling: 'cooperative'});
More Info Here