hmpps-open-layers-map
Version:
A native Web Component for displaying maps using OpenLayers or MapLibre.
26 lines (25 loc) • 870 B
JavaScript
import PointerInteraction from 'ol/interaction/Pointer';
export default class MapPointerInteraction extends PointerInteraction {
constructor() {
super();
}
handleEvent(event) {
const viewport = event.map.getViewport();
if (event.type === 'pointerdown') {
// Only change to 'grabbing' if the current cursor isn't already 'pointer'
if (viewport.style.cursor !== 'pointer') {
viewport.style.cursor = 'grabbing';
}
return true;
}
if (event.type === 'pointermove') {
viewport.style.cursor = event.dragging ? 'grabbing' : 'grab';
return true;
}
if (event.type === 'pointerup' || event.type === 'pointerleave') {
viewport.style.cursor = 'grab';
return true;
}
return true;
}
}