【问题标题】:OpenLayers how do I stop propagation of pointer in OpenLayers 6OpenLayers 如何停止在 OpenLayers 6 中传播指针
【发布时间】:2021-09-30 14:39:51
【问题描述】:

我正在升级到 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 中使用“UIEvent”类型并尝试将其设置为 false...OpenLayers 文档说它需要一个函数,并且新模式不会为任何其他处理程序抛出错误,但 'stopDownHandler '即(

function handleDownEventHandler(evt: MapBrowserEvent<MouseEvent>) {
if (evt.originalEvent.buttons !== 2) {
downClick = evt.coordinate;
return true;
} else { return false; }
}

) 有效

我收到错误提示

类型 '(evt: MapBrowserEvent) => boolean' 不可分配给类型 '(arg0: boolean) => boolean'。 参数“evt”和“arg0”的类型不兼容。 类型 'boolean' 不可分配给类型 'MapBrowserEvent'.ts(2322)

当使用类型 UIEvent 和错误时

类型 '(evt: MapBrowserEvent) => boolean' 不可分配给类型 '(arg0: boolean) => boolean'。 参数“evt”和“arg0”的类型不兼容。 类型 'boolean' 不可分配给类型 'MapBrowserEvent'.ts(2322)

当使用鼠标事件类型时...即使鼠标事件类型适用于其他处理程序。

OpenLayers 文档没有给出一个很好的例子来说明如何使用它,我在任何“升级”文档中都找不到一个很好的解释如何改变它以使其正常工作。

非常感谢任何帮助

【问题讨论】:

标签: typescript openlayers openlayers-6 angular-openlayers


【解决方案1】:

将 evt: MapBrowserEvent 更改为 arg0: boolean 使错误消失,但这似乎不是一个好的解决方案……它实际上似乎是一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多