【问题标题】:Disabling pinch-zoom on google maps [Desktop]在谷歌地图上禁用捏缩放[桌面]
【发布时间】:2013-02-10 03:05:17
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 它对你不起作用,所以你决定为所有人禁用它?
  • 很抱歉,您为什么担心这个问题?这不是一个公共网站,当某个功能使用起来更痛苦时,最好禁用它。如果您费心完整地阅读问题,我将保留默认的缩放控件 UI 'ON'。

标签: javascript google-maps


【解决方案1】:

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

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

return false;
}

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

Google Maps API v3 Disable Pinch to Zoom on iPad Safari

这里

How to disable pinch in Android MapView

【讨论】:

  • 谢谢@Alejandro。我之前实际上看过那个答案,但不知何故完全错过了'e.touches'属性。这解决了它。
【解决方案2】:

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

mymap.setOptions({draggable: false});

至少在 Android 4.4.2 上是这样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多