6

我们遇到了与 GoogleMaps 相关的问题。该问题主要与触摸屏有关。我们试图解决这个问题,但到目前为止还没有成功。

我们在这篇文章中发现Google Maps API V3 不支持触​​摸事件?这是真的还是假的?

更新

此问题已在 bug 中处理

https://issuetracker.google.com/issues/35824421

并于 2016 年 12 月在 Google Maps JavaScript API 3.27 版中得到解决。

4

2 回答 2

14

根据我的经验,mousedown, mouseup, dragstart,dragend事件可以很好地代替touchstart, touchmove, touchend.

google.maps.event.addListener(myMap, "mousedown", function(event){...});

我很确定gesture不会支持事件,因为这些事件用于捏缩放功能。

如果您需要手势,则必须通过跟踪 mousedown 事件、将它们存储在数组中、然后跟踪位置以确定角度、距离等来构建自己的识别器......

于 2013-04-24T21:52:02.000 回答
1

目前不支持它们。有关显示当前可用事件演示的交互式地图,请参见此处:

https://developers.google.com/maps/documentation/javascript/events#EventsOverview

该页面还指出:

有关事件的完整列表,请参阅 Google 地图 JavaScript API 参考。

该页面没有与触摸相关的事件,因此不支持它们。

评论接受的答案时,支持的事件并不严格等效(触摸在语义上与鼠标单击明显不同),并且根据我的经验结果可能是可变的(例如,在某些情况下,触摸可能会导致触发Google 地图上的 onclick 事件,在某些情况下它可能会导致触发鼠标悬停事件),因此当“借用”这些事件来检测触摸时,可能需要一些失败处理来可靠地处理此类事件。

这是一篇关于使用监听器处理触摸的好文章:

https://www.google.com.au/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiwm6y38dXXAhWHVbwKHRdUCY4QFggmMAA&url=https%3A%2F%2Fmedium.com%2F%40david.gilbertson%2Fthe-only-用javascript-7791a3346685&usg=AOvVaw3pWv0R_AESWKqwF72D0hix 检测触摸的方式

于 2017-11-23T23:45:15.347 回答