为什么 openlayers 没有检测到我笔记本电脑的触摸事件?

Why isn't openlayers detecting touch events from my laptop?

我正在使用 OpenLayers 6.2.1 开发应用程序。为了针对移动设备对其进行优化,我试图在用户触摸屏幕时增加 hitTolerance。 According to the documentation, the map is supposed to be able to detect "touchOnly" events. 但是,当我在触摸屏笔记本电脑上执行触摸交互时,响应触摸事件的函数未检测到该事件:

map.on('touchOnly', function() {
    hitTolerance = 5;
    console.log('touch')
});

相反,这些触摸事件触发了我的点击功能。 mouseOnly 似乎有类似的问题,从我的鼠标触发的事件被检测为单击事件而不是 mouseOnly 事件。有我可以实施的解决方法吗?

快速编辑 - 我正在使用 Google Chrome 并且我也无法使用以下方法记录触摸事件:

map.addEventListener("touchstart", function () {
    hitTolerance = 5;
    console.log('touch');
});

我找到了合适的解决方法。

在我的代码的前面,我这样声明了 var 映射:

var map = new ol.Map({
    target: 'map', 
    view: new ol.View({
        center: [-9099568, 4192168],
        zoom: 3,
        projection: 'EPSG:3857',
    })
});

目标"map"指的是我的这部分HTML:

<body>
    <div id="map" class="map"></div>
</body>

所以,我能够使用这条线检测地图上的触摸事件:

document.getElementById('map').addEventListener('touchstart', function () {
    console.log('touch');
});

出于某种原因,ol 地图对象无法检测到触摸,但它的容器可以。

ol/Map 不触发 touchOnly 使用 singleclick 或其他事件映射可以处理,例如 movestart,请参阅 https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html
它同时处理鼠标和触摸事件。