expand slop logic
This commit is contained in:
parent
91a3adf374
commit
b285ecbc8f
1 changed files with 9 additions and 9 deletions
|
@ -1031,10 +1031,17 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
|
||||||
calc.setRotate(calcRotate);
|
calc.setRotate(calcRotate);
|
||||||
calc.setZoomAndAnimation(initialViewport.getZoom(), dz, initialViewport.getZoomFloatPart());
|
calc.setZoomAndAnimation(initialViewport.getZoom(), dz, initialViewport.getZoomFloatPart());
|
||||||
|
|
||||||
|
//Try some slop logic here to better facilitate two finger tap zoom without losing map-linked-to-location
|
||||||
|
boolean suppressLoseLinkToLocation = ((multiTouchSupport.getCenterPoint().x - initialMultiTouchCenterPoint.x)
|
||||||
|
* (multiTouchSupport.getCenterPoint().x - initialMultiTouchCenterPoint.x)
|
||||||
|
+ (multiTouchSupport.getCenterPoint().y - initialMultiTouchCenterPoint.y)
|
||||||
|
* (multiTouchSupport.getCenterPoint().y - initialMultiTouchCenterPoint.y))
|
||||||
|
< 900;
|
||||||
|
|
||||||
final QuadPoint cp = initialViewport.getCenterPixelPoint();
|
final QuadPoint cp = initialViewport.getCenterPixelPoint();
|
||||||
// Keep zoom center fixed or flexible
|
// Keep zoom center fixed or flexible
|
||||||
LatLon r;
|
LatLon r;
|
||||||
if (multiTouchSupport.isInZoomMode()) {
|
if (multiTouchSupport.isInZoomMode() && !suppressLoseLinkToLocation) {
|
||||||
r = calc.getLatLonFromPixel(cp.x + cp.x - multiTouchSupport.getCenterPoint().x, cp.y + cp.y - multiTouchSupport.getCenterPoint().y);
|
r = calc.getLatLonFromPixel(cp.x + cp.x - multiTouchSupport.getCenterPoint().x, cp.y + cp.y - multiTouchSupport.getCenterPoint().y);
|
||||||
} else {
|
} else {
|
||||||
r = calc.getLatLonFromPixel(cp.x + cp.x - initialMultiTouchCenterPoint.x, cp.y + cp.y - initialMultiTouchCenterPoint.y);
|
r = calc.getLatLonFromPixel(cp.x + cp.x - initialMultiTouchCenterPoint.x, cp.y + cp.y - initialMultiTouchCenterPoint.y);
|
||||||
|
@ -1054,14 +1061,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
|
||||||
dz = Math.signum(dz);
|
dz = Math.signum(dz);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Try some slop logic here to better facilitate two finger tap zoom without losing map-linked-to-location
|
zoomToAnimate(baseZoom, dz, !(doubleTapScaleDetector.isInZoomMode() || suppressLoseLinkToLocation));
|
||||||
boolean loseLocationLinkSlop = ((multiTouchSupport.getCenterPoint().x - initialMultiTouchCenterPoint.x)
|
|
||||||
* (multiTouchSupport.getCenterPoint().x - initialMultiTouchCenterPoint.x)
|
|
||||||
+ (multiTouchSupport.getCenterPoint().y - initialMultiTouchCenterPoint.y)
|
|
||||||
* (multiTouchSupport.getCenterPoint().y - initialMultiTouchCenterPoint.y))
|
|
||||||
< 900;
|
|
||||||
|
|
||||||
zoomToAnimate(baseZoom, dz, !(doubleTapScaleDetector.isInZoomMode() || loseLocationLinkSlop));
|
|
||||||
rotateToAnimate(calcRotate);
|
rotateToAnimate(calcRotate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue