gpt4 book ai didi

javascript - OpenLayers 3.6.0 触摸事件

转载 作者:行者123 更新时间:2023-11-28 19:06:01 28 4
gpt4 key购买 nike

我似乎无法为触摸事件添加事件监听器。只有 moveend 被解雇。

map.on('zoomend', mapEvent);
map.on('moveend', mapEvent);
map.on('touchmove', mapEvent);
map.on('touchstart', mapEvent);

这些都不起作用

map = new ol.Map({
eventListeners: {

"zoomend": mapEvent,
"changelayer": mapEvent,
"changebaselayer": mapEvent,
"mousedown": mapEvent,
"touchmove": mapEvent
},

这会导致错误 - “Uncaught TypeError:无法读取未定义的属性“register””

 map.events.register('touchmove', map, function(e) {
console.log("touchmove")
});
map.events.register('touchend', map, function(e) {
console.log("touchend")
});

所以现在我完全迷失了!?

最佳答案

这正是应该发生的事情!

除了 moveend 之外,您列出的所有事件在 OpenLayers 3.6.0 上都不再存在。另外,ol.Map 下的配置选项 eventListeners 不存在。您可以在official API docs上检查ol.Map的所有事件和配置选项。 。这些事件列在 Fires 部分。

此外,请检查此 JSFiddle对于一些其他事件(pointermovepointerdrag)。在 Chrome 上,您还可以使用开发人员工具 (F12) 模拟触摸设备并查看会发生什么。

var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});


map.on('moveend', function(e) {
console.log("moveend")
});
map.on('pointermove', function(e) {
console.log("pointermove")
});
map.on('pointerdrag', function(e) {
console.log("pointerdrag")
});

关于javascript - OpenLayers 3.6.0 触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com