我正在升级到OpenLayers 6和以前工作过的代码
import { MapBrowserPointerEvent as olMapBrowserPointerEvent } from 'ol/events/Event';
const simpleLineInteraction: PointerInteraction = new PointerInteraction({
handleDownEvent: handleDownEventHandler,
handleDragEvent: handleDragEventHandler,
handleUpEvent: handleUpEventHandler,
stopDown: stopDownHandler
});
function stopDownHandler(evt: olMapBrowserPointerEvent) {
return false;
}已停止为stopDownHandler工作。
我试图实现的代码是
import MapBrowserEvent from 'ol/MapBrowserEvent';
const simpleLineInteraction: PointerInteraction = new PointerInteraction({
handleDownEvent: handleDownEventHandler,
handleDragEvent: handleDragEventHandler,
handleUpEvent: handleUpEventHandler,
stopDown: stopDownHandler
});
function stopDownHandler(evt: MapBrowserEvent<MouseEvent>) {
return false;
}我还尝试在stopDownHandler中使用“stopDownHandler”类型,并尝试将其设置为false...the OpenLayers docs,表示它需要一个函数,新模式不会为任何其他处理程序抛出错误,而是“stopDownHandler”,即(
function handleDownEventHandler(evt: MapBrowserEvent<MouseEvent>) {
if (evt.originalEvent.buttons !== 2) {
downClick = evt.coordinate;
return true;
} else { return false; }
})工程
我收到错误
类型'(evt: MapBrowserEvent) =>布尔‘不能指定为“类型”(arg0:=>布尔型)。参数'evt‘和'arg0’的类型是不兼容的。输入“boolean”不能输入“MapBrowserEvent”. to (2322)
使用UIEvent类型和错误时
类型'(evt: MapBrowserEvent) =>布尔‘不能指定为“类型”(arg0:=>布尔型)。参数'evt‘和'arg0’的类型是不兼容的。输入“boolean”不能输入“MapBrowserEvent”. to (2322)
但是,当使用MouseEvent...even类型时,鼠标类型事件适用于其他处理程序。
OpenLayers文档没有给出一个很好的例子来说明如何使用它,我在任何“升级”文档中都找不到一个很好的解释--如何更改它,这样它才能工作。
任何帮助都是非常感谢的。
发布于 2021-07-23 14:28:29
将evt: MapBrowserEvent更改为arg0: boolean使错误消失,但这看起来并不像一个好的solution...it,实际上它看起来像是一个bug。
https://stackoverflow.com/questions/68499683
复制相似问题