* You can obtain one at http://mozilla.org/MPL/2.0/. */
var gMapCanvas, gMapContext, gTrackCanvas, gTrackContext, gGeolocation;
-var gDebug = false;
+var gDebug = true;
var gTileSize = 256;
var gMaxZoom = 18; // The minimum is 0.
gAction.dispatchEvent(throwEv);
});
gWaitCounter++;
- var trackLoadStarted = false;
+ var trackLoadStarted = false, 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.
Math.pow(aEvent.targetTouches.item(1).clientY -
aEvent.targetTouches.item(0).clientY, 2)
);
- console.log('!!!' + gPinchStartWidth);
}
gDragTouchID = aEvent.changedTouches.item(0).identifier;
coordObj = aEvent.changedTouches.identifiedTouch(gDragTouchID);
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);
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;
break;
case "mouseup":
case "touchend":
+ gPinchStartWidth = null;
gDragging = false;
showUI();
break;