我们遇到了与 GoogleMaps 相关的问题。该问题主要与触摸屏有关。我们试图解决这个问题,但到目前为止还没有成功。
我们在这篇文章中发现Google Maps API V3 不支持触摸事件?这是真的还是假的?
更新
此问题已在 bug 中处理
https://issuetracker.google.com/issues/35824421
并于 2016 年 12 月在 Google Maps JavaScript API 3.27 版中得到解决。
我们遇到了与 GoogleMaps 相关的问题。该问题主要与触摸屏有关。我们试图解决这个问题,但到目前为止还没有成功。
我们在这篇文章中发现Google Maps API V3 不支持触摸事件?这是真的还是假的?
更新
此问题已在 bug 中处理
https://issuetracker.google.com/issues/35824421
并于 2016 年 12 月在 Google Maps JavaScript API 3.27 版中得到解决。
根据我的经验,mousedown
, mouseup
, dragstart
,dragend
事件可以很好地代替touchstart
, touchmove
, touchend
.
google.maps.event.addListener(myMap, "mousedown", function(event){...});
我很确定gesture
不会支持事件,因为这些事件用于捏缩放功能。
如果您需要手势,则必须通过跟踪 mousedown 事件、将它们存储在数组中、然后跟踪位置以确定角度、距离等来构建自己的识别器......
目前不支持它们。有关显示当前可用事件演示的交互式地图,请参见此处:
https://developers.google.com/maps/documentation/javascript/events#EventsOverview
该页面还指出:
有关事件的完整列表,请参阅 Google 地图 JavaScript API 参考。
该页面没有与触摸相关的事件,因此不支持它们。
评论接受的答案时,支持的事件并不严格等效(触摸在语义上与鼠标单击明显不同),并且根据我的经验结果可能是可变的(例如,在某些情况下,触摸可能会导致触发Google 地图上的 onclick 事件,在某些情况下它可能会导致触发鼠标悬停事件),因此当“借用”这些事件来检测触摸时,可能需要一些失败处理来可靠地处理此类事件。
这是一篇关于使用监听器处理触摸的好文章: