2

我有一个使用 Google Maps API v3 的网站,但无法让 pinch-zoom 属性正常工作。手势始终执行缩小,而不是捏合放大。

这是一款具有触控功能的 PC 显示器。因此,由于我无法使其正常工作,我决定禁用该功能。

我使用下面取消了触摸事件

document.documentElement.ontouchstart = function() {return false}

这有一个不想要的副作用。此代码取消了整个触摸事件,因此用户无法使用 Google Maps 默认缩放控件。我尝试将“ontouchstart”更改为“ontouchmove”事件,但这并不能阻止地图缩小。

关于如何禁用该功能或​​可能是如何修复捏合放大功能的任何想法?我可以发布网站网址,但它只是一个普通的谷歌地图,除非你有触摸屏显示器,否则你不会注意到这个问题。

4

2 回答 2

3

这里有类似问题的人以这种方式解决了它,也许它对你有用

var tblock = function (e) {
if (e.touches.length > 1) {
    e.preventDefault()
}

return false;
}

document.body.addEventListener("touchmove", tblock, true);

Google Maps API v3 在 iPad Safari 上禁用双指缩放

和这里

如何在 Android MapView 中禁用捏合

于 2013-02-25T02:12:42.847 回答
1

禁用“touchmove”只能解决部分问题,因为谷歌地图有自己的想法。您的设备将允许您捏缩放(在一定程度上,并且不一致),直到您禁用谷歌地图自己的可拖动选项,例如

mymap.setOptions({draggable: false});

至少在 Android 4.4.2 上是这样的。

于 2016-03-23T19:13:27.573 回答