X-Git-Url: https://git-public.kairo.at/?p=lantea.git;a=blobdiff_plain;f=js%2Fmap.js;fp=js%2Fmap.js;h=9f95971c37823d6102f5ad275eff40843e31add3;hp=4cae845edabdf162942a6321b3ff570bd23db065;hb=9292a1b76e7ff35b9c384c1f4f63bad881db166e;hpb=b4df67c99619cc6b3871307319dedc006e420f71 diff --git a/js/map.js b/js/map.js index 4cae845..9f95971 100644 --- a/js/map.js +++ b/js/map.js @@ -675,6 +675,7 @@ var gTrackLayer = { gTrackLayer.drawTrackPoint(gTrackLayer.lastRequestedIndex); if (performance.now() >= start + gTrackLayer.maxDrawTime) { // Break out of the loop if we are over the max allowed time, we'll continue in the next rAF (see below). + gTrackLayer.drawTrackPoint(null); break; } } @@ -688,6 +689,14 @@ var gTrackLayer = { drawTrackPoint: function(aIndex) { gTrackLayer.running = true; + if (!aIndex && aIndex !== 0) { + // We can be called this way to make sure we draw an actual line up to where we are right now. + if (gTrackLayer.lastDrawnPoint && gTrackLayer.lastDrawnPoint.optimized) { + gTrackLayer.context.stroke(); + gTrackLayer.lastDrawnPoint.optimized = false; + } + return; + } var trackpoint = {"worldpos": gps2xy(gTrack[aIndex].coords.latitude, gTrack[aIndex].coords.longitude)}; var isLastPoint = (aIndex + 1 >= gTrack.length || gTrack[aIndex+1].beginSegment); var update_drawnpoint = true;