onPointerMove method
Implementation
@override
void onPointerMove(int pointerId, Offset offset, Map<int, Offset> pointers) {
if (!activeTimer() && !_moveActive) {
return;
}
super.onPointerMove(pointerId, offset, pointers);
cancelTimer();
_moveActive = true;
velocityCalculator.addEvent(offset);
double diffX = (offset.dx - startOffset!.dx) * MapsforgeSettingsMgr().getDeviceScaleFactor();
double diffY = (offset.dy - startOffset!.dy) * MapsforgeSettingsMgr().getDeviceScaleFactor();
if (mapModel.lastPosition?.rotation != 0) {
double hyp = sqrt(diffX * diffX + diffY * diffY);
double rad = atan2(diffY, diffX);
double rot = mapModel.lastPosition!.rotationRadian;
diffX = cos(-rot + rad) * hyp;
diffY = sin(-rot + rad) * hyp;
}
if (_nextManualMoveEvent == 0 || _nextManualMoveEvent < DateTime.now().millisecondsSinceEpoch) {
_nextManualMoveEvent = DateTime.now().millisecondsSinceEpoch + 1000;
mapModel.manualMove(Object());
}
mapModel.setCenter(startPosition!.getCenter().x - diffX, startPosition!.getCenter().y - diffY);
}