X-Git-Url: https://git-public.kairo.at/?p=lantea.git;a=blobdiff_plain;f=js%2Fmap.js;h=5c93ae5741dbf71885253461fbe3e7b6e2a4cd32;hp=ce664298e6c478fd3c08576f26b99fe7565c87ac;hb=d0c62ee019f8c1264fda16acf2a2649e23de6e82;hpb=7710f0a3d22b1856b08f57b90101c09876f1c89c diff --git a/js/map.js b/js/map.js index ce66429..5c93ae5 100644 --- a/js/map.js +++ b/js/map.js @@ -163,13 +163,17 @@ function loadPrefs(aEvent) { }); gWaitCounter++; var trackLoadStarted = false; + var redrawBase = 100; gTrackStore.getListStepped(function(aTPoint) { if (aTPoint) { // Add in front and return new length. var tracklen = gTrack.unshift(aTPoint); - // Redraw track every 100 values (initial paint will do first anyhow). - if (tracklen % 100 == 0) + // Redraw track periodically, larger distance the longer it gets. + // Initial paint will do initial track drawing. + if (tracklen % redrawBase == 0) { drawTrack(); + redrawBase = tracklen; + } } else { // Last point received. @@ -512,7 +516,9 @@ var mapEvHandler = { Math.pow(aEvent.targetTouches.item(1).clientY - aEvent.targetTouches.item(0).clientY, 2) ); - console.log(gPinchStartWidth + ' ' + curPinchStartWidth); + if (!gPinchStartWidth) + gPinchStartWidth = curPinchStartWidth; + if (gPinchStartWidth / curPinchStartWidth > 1.7 || gPinchStartWidth / curPinchStartWidth < 0.6) { var newZoomLevel = gPos.z + (gPinchStartWidth < curPinchStartWidth ? 1 : -1); @@ -536,8 +542,12 @@ var mapEvHandler = { zoomIn(); else zoomOut(); + + // Reset pinch start width and start another pinch gesture. + gPinchStartWidth = null; } } + // If we are in a pinch, do not drag. break; } var x = coordObj.clientX - gMapCanvas.offsetLeft; @@ -568,6 +578,7 @@ var mapEvHandler = { break; case "mouseup": case "touchend": + gPinchStartWidth = null; gDragging = false; showUI(); break;