create hackish way to save GPX tracks and make the map only shift when we get enough...
[lantea.git] / js / map.js
index 3c12015f01d31f1161abd191c682fc8290473ee1..4cd4ea7b809ea786d1ca1dbdbd1ee8be86ab6e24 100644 (file)
--- a/js/map.js
+++ b/js/map.js
@@ -84,6 +84,7 @@ var gZoomTouchID;
 var gGeoWatchID;
 var gTrack = [];
 var gLastTrackPoint;
 var gGeoWatchID;
 var gTrack = [];
 var gLastTrackPoint;
+var gCenterPosition = true;
 
 function initMap() {
   gCanvas = document.getElementById("map");
 
 function initMap() {
   gCanvas = document.getElementById("map");
@@ -415,6 +416,15 @@ function startTracking() {
         // Coords spec: https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionCoords
         gTrack.push({time: position.timestamp, coords: position.coords});
         drawTrackPoint(position.coords.latitude, position.coords.longitude);
         // Coords spec: https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionCoords
         gTrack.push({time: position.timestamp, coords: position.coords});
         drawTrackPoint(position.coords.latitude, position.coords.longitude);
+        if (gCenterPosition) {
+          var posCoord = gps2xy(position.coords.latitude, position.coords.longitude);
+          if (Math.abs(gPos.x - posCoord.x) > gCanvas.width * gZoomFactor / 4 ||
+              Math.abs(gPos.y - posCoord.y) > gCanvas.height * gZoomFactor / 4) {
+            gPos.x = posCoord.x;
+            gPos.y = posCoord.y;
+            drawMap();
+          }
+        }
       },
       function(error) {
         // Ignore erros for the moment, but this is good for debugging.
       },
       function(error) {
         // Ignore erros for the moment, but this is good for debugging.