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) に割り当てられません
タイプ MouseEvent を使用する場合...タイプのマウスイベントは他のハンドラーで機能しますが。
OpenLayers のドキュメントには、これを使用する方法の良い例が示されておらず、「アップグレード」ドキュメントのいずれにも、これを変更して機能するようにするための適切な説明が見つかりません。
どんな助けでも大歓迎です