onPointerUp method
Implementation
@override
void onPointerUp(int pointerId, Offset offset, Map<int, Offset> pointers) {
super.onPointerUp(pointerId, offset, pointers);
// no zoom: 0, double zoom: 1, half zoom: -1
double zoomLevelOffset = log(_lastScale) / log(2);
int zoomLevelDiff = zoomLevelOffset.round();
if (zoomLevelDiff != 0) {
// Complete large zooms towards gesture direction
num mult = pow(2, zoomLevelDiff);
// if (doLog)
// _log.info("onScaleEnd zooming now zoomLevelDiff $zoomLevelDiff");
PositionInfo positionInfo = RotateHelper.normalize(startPosition!, size, _lastVector!.getFocalPoint().dx, _lastVector!.getFocalPoint().dy);
mapModel.zoomToAround(
positionInfo.latitude + (mapModel.lastPosition!.latitude - positionInfo.latitude) / mult,
positionInfo.longitude + (mapModel.lastPosition!.longitude - positionInfo.longitude) / mult,
mapModel.lastPosition!.zoomlevel + zoomLevelDiff,
);
// if (doLog) _log.info("onScaleEnd resulting in ${newPost.toString()}");
} else if (_lastScale != 1) {
// no significant zoom. Restore the old zoom
/*MapViewPosition newPost =*/
mapModel.zoomTo(mapModel.lastPosition!.zoomlevel);
// if (doLog)
// _log.info(
// "onScaleEnd Restored zoom to ${viewModel.mapViewPosition!.zoomLevel}");
}
cancelTimer();
}