如何最好地处理 OpenLayers 移动设备上的指针移动和点击事件?

问题描述

here 可以看出,pointermove 事件无法在 iOS Safari 上使用,这是我的目标用户最常用的浏览器。在 OpenLayers 地图上,我想在悬停在特定图层的功能上时显示工具提示。它在带有 pointermove 的桌面上运行良好,但是为移动设备包含类似行为的最佳做法是什么?在我朝错误的方向做太多事情之前,我需要一些指导

  • 我是否应该同时收听 clicksingleclick 事件以包括手机?
  • 如果是这样,我是否应该只添加两个侦听器并引用同一个回调?
  • 如果是这样,我是否应该检查哪个设备触发了事件,以避免(可能?)奇怪的行为?
  • 我不确定移动设备对点击的容忍度:我是否应该使用 hitToleranceforEachFeatureAtPixel 选项,然后我是否需要以编程方式确保我获得最接近的功能到点击的像素,而不是容差范围内的一些随机像素?

感谢您的帮助:)

解决方法

现在所有主流浏览器都原生支持 Pointer 事件,并且移除了 Openlayers Pointer polyfill since v6.4。如果您的目标是不支持指针事件的旧浏览器,您现在需要在您的应用程序中包含指针事件 polyfill(elm-peppepjs)。然后,您可以在所有平台上使用 pointermove 事件。