【发布时间】:2015-04-24 01:43:32
【问题描述】:
我在 Angular 应用程序中使用 Google Maps javascript API。当使用鼠标在普通台式机上使用谷歌浏览器中的应用程序时,各种导航功能(平移/缩放)在应用程序的谷歌地图部分工作得很好。但是,当我尝试在 Windows 8.1 屏幕上使用触摸手势时,地图无法识别任何平移或缩放手势。如果我捏放大,什么都不会发生。如果我像鼠标一样双击屏幕,地图会放大。如果我用手指拖动,浏览器窗口会处理触摸事件而不是地图 div,因此左右导航页面历史记录和上下拖动滚动整个页面而不是平移地图。
作为另一个实验,我尝试在 Chrome 中使用谷歌地图 http://maps.google.com 本身,它运行良好。所以这意味着它可以以某种方式完成......
那么,它是一种视口元标记类型的东西吗?还是与调整地图元素的大小有关?或者它是一个有角度的东西,我们需要以某种方式对 ngTouch 做一些事情以允许应用程序响应触摸事件?
更新:触摸事件确实在 iPad 上的同一页面上工作。我不确定那是什么意思,但令人鼓舞的是,至少它可以在移动 safari 上运行。看来我们需要向 Angular 传达一些信息来告诉它接受触摸事件。
更新
这个问题已经在bug中处理了
https://issuetracker.google.com/issues/35824421
并在 2016 年 12 月的 Google Maps JavaScript API 3.27 版中得到解决。
【问题讨论】:
-
在this 地图上尝试这些事件在我测试过的 Windows 平板电脑上也不起作用。另一方面,使用光标可以正常工作。您可能需要考虑在 Maps issue tracker 上提交错误或功能请求。
标签: angularjs google-maps google-maps-api-3 touch multi-touch