mirror of
https://github.com/visgl/react-map-gl.git
synced 2026-01-18 15:54:22 +00:00
42 lines
976 B
JavaScript
42 lines
976 B
JavaScript
import {MapController} from 'react-map-gl';
|
|
|
|
export default class MyMapController extends MapController {
|
|
|
|
// register custom events
|
|
events = ['press'];
|
|
|
|
// override default event handler
|
|
handleEvent(event) {
|
|
if (event.type === 'press' && this.onPress) {
|
|
this.onPress(event);
|
|
return;
|
|
}
|
|
super.handleEvent(event);
|
|
}
|
|
|
|
// override default pan event handler
|
|
_onPan(event) {
|
|
let shouldRotate = this.isFunctionKeyPressed(event) || event.rightButton;
|
|
if (this.invertPan) {
|
|
shouldRotate = !shouldRotate;
|
|
}
|
|
return shouldRotate ? this._onPanRotate(event) : this._onPanMove(event);
|
|
}
|
|
|
|
// override default wheel event handler
|
|
_onWheel(event) {
|
|
if (this.invertZoom) {
|
|
event.delta = -event.delta;
|
|
}
|
|
super._onWheel(event);
|
|
}
|
|
|
|
setOptions(options) {
|
|
this.invertZoom = options.invertZoom;
|
|
this.invertPan = options.invertPan;
|
|
this.onPress = options.onPress;
|
|
|
|
super.setOptions(options);
|
|
}
|
|
}
|