projects
/
lantea.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9292a1b
)
move some more vars into objects; allow panning around without centering kicking...
author
Robert Kaiser
<kairo@kairo.at>
Mon, 10 Feb 2020 20:46:28 +0000
(21:46 +0100)
committer
Robert Kaiser
<kairo@kairo.at>
Mon, 10 Feb 2020 20:46:28 +0000
(21:46 +0100)
js/map.js
patch
|
blob
|
blame
|
history
diff --git
a/js/map.js
b/js/map.js
index 9f95971c37823d6102f5ad275eff40843e31add3..983dff9c697c254c1e416ae7ce22cf2e75014a4c 100644
(file)
--- a/
js/map.js
+++ b/
js/map.js
@@
-6,10
+6,7
@@
var gGLMapCanvas, gTrackCanvas, gGeolocation;
var gDebug = false;
var gMinTrackAccuracy = 1000; // meters
var gDebug = false;
var gMinTrackAccuracy = 1000; // meters
-var gTrackWidth = 2; // pixels
-var gTrackColor = "#FF0000";
-var gCurLocSize = 6; // pixels
-var gCurLocColor = "#A00000";
+var gCenterDelayAfterMove = 3000; // milliseconds
var gMapStyles = {
// OSM tile usage policy: http://wiki.openstreetmap.org/wiki/Tile_usage_policy
var gMapStyles = {
// OSM tile usage policy: http://wiki.openstreetmap.org/wiki/Tile_usage_policy
@@
-92,6
+89,7
@@
var gGeoWatchID, gGPSWakeLock;
var gTrack = [];
var gLastTrackPoint;
var gCenterPosition = true;
var gTrack = [];
var gLastTrackPoint;
var gCenterPosition = true;
+var gLastMoveAction = null;
function initMap() {
gGeolocation = navigator.geolocation;
function initMap() {
gGeolocation = navigator.geolocation;
@@
-648,7
+646,12
@@
var gTrackLayer = {
lastRequestedIndex: null, // may not have been actually drawn...
drawRequested: false,
restartDrawing: true,
lastRequestedIndex: null, // may not have been actually drawn...
drawRequested: false,
restartDrawing: true,
+
maxDrawTime: 10, // max time allowed for drawing a section, in ms - 10 means we can do 100 fps smoothly
maxDrawTime: 10, // max time allowed for drawing a section, in ms - 10 means we can do 100 fps smoothly
+ trackWidth: 2, // pixels
+ trackColor: "#FF0000",
+ curLocSize: 6, // pixels
+ curLocColor: "#A00000",
drawTrack: function(needRestart = true) {
// TODO: figure out if we can support reverse drawing while initially loading the track.
drawTrack: function(needRestart = true) {
// TODO: figure out if we can support reverse drawing while initially loading the track.
@@
-716,9
+719,9
@@
var gTrackLayer = {
}
}
if (!gTrackLayer.lastDrawnPoint || !gTrackLayer.lastDrawnPoint.optimized) {
}
}
if (!gTrackLayer.lastDrawnPoint || !gTrackLayer.lastDrawnPoint.optimized) {
- gTrackLayer.context.strokeStyle = gTrackColor;
+ gTrackLayer.context.strokeStyle = gTrack
Layer.track
Color;
gTrackLayer.context.fillStyle = gTrackLayer.context.strokeStyle;
gTrackLayer.context.fillStyle = gTrackLayer.context.strokeStyle;
- gTrackLayer.context.lineWidth = gTrackWidth;
+ gTrackLayer.context.lineWidth = gTrack
Layer.track
Width;
gTrackLayer.context.lineCap = "round";
gTrackLayer.context.lineJoin = "round";
}
gTrackLayer.context.lineCap = "round";
gTrackLayer.context.lineJoin = "round";
}
@@
-769,7
+772,7
@@
var gTrackLayer = {
// Only run this when visible and we are not drawing a track right now.
if (gTrackLayer.context && document.hidden != true && !gTrackLayer.drawRequested) {
var locpoint = gps2xy(trackPoint.coords.latitude, trackPoint.coords.longitude);
// Only run this when visible and we are not drawing a track right now.
if (gTrackLayer.context && document.hidden != true && !gTrackLayer.drawRequested) {
var locpoint = gps2xy(trackPoint.coords.latitude, trackPoint.coords.longitude);
- var circleRadius = Math.round(g
C
urLocSize / 2);
+ var circleRadius = Math.round(g
TrackLayer.c
urLocSize / 2);
var mappos = {x: Math.round((locpoint.x - gMap.pos.x) / gMap.zoomFactor + gMap.width / 2),
y: Math.round((locpoint.y - gMap.pos.y) / gMap.zoomFactor + gMap.height / 2)};
var mappos = {x: Math.round((locpoint.x - gMap.pos.x) / gMap.zoomFactor + gMap.width / 2),
y: Math.round((locpoint.y - gMap.pos.y) / gMap.zoomFactor + gMap.height / 2)};
@@
-783,7
+786,7
@@
var gTrackLayer = {
mappos.y - circleRadius,
circleRadius * 2, circleRadius * 2)};
mappos.y - circleRadius,
circleRadius * 2, circleRadius * 2)};
- gTrackLayer.context.strokeStyle = g
C
urLocColor;
+ gTrackLayer.context.strokeStyle = g
TrackLayer.c
urLocColor;
gTrackLayer.context.fillStyle = gTrackLayer.context.strokeStyle;
gTrackLayer.context.beginPath();
gTrackLayer.context.arc(mappos.x, mappos.y,
gTrackLayer.context.fillStyle = gTrackLayer.context.strokeStyle;
gTrackLayer.context.beginPath();
gTrackLayer.context.arc(mappos.x, mappos.y,
@@
-973,6
+976,7
@@
var mapEvHandler = {
gLastMouseX = x;
gLastMouseY = y;
showUI();
gLastMouseX = x;
gLastMouseY = y;
showUI();
+ gLastMoveAction = performance.now();
break;
case "mousemove":
case "touchmove":
break;
case "mousemove":
case "touchmove":
@@
-1029,6
+1033,7
@@
var mapEvHandler = {
}
gLastMouseX = x;
gLastMouseY = y;
}
gLastMouseX = x;
gLastMouseY = y;
+ gLastMoveAction = performance.now();
break;
case "mouseup":
case "touchend":
break;
case "mouseup":
case "touchend":
@@
-1146,6
+1151,7
@@
var mapEvHandler = {
gMap.pos.x -= dX * gMap.zoomFactor;
gMap.pos.y -= dY * gMap.zoomFactor;
gMap.draw();
gMap.pos.x -= dX * gMap.zoomFactor;
gMap.pos.y -= dY * gMap.zoomFactor;
gMap.draw();
+ gLastMoveAction = performance.now();
}
break;
}
}
break;
}
@@
-1237,7
+1243,7
@@
function startTracking() {
gTrack.push(tPoint);
try { gTrackStore.push(tPoint); } catch(e) {}
var redrawn = false;
gTrack.push(tPoint);
try { gTrackStore.push(tPoint); } catch(e) {}
var redrawn = false;
- if (gCenterPosition) {
+ if (gCenterPosition
&& (!gLastMoveAction || performance.now() > gLastMoveAction + gCenterDelayAfterMove)
) {
var posCoord = gps2xy(position.coords.latitude,
position.coords.longitude);
if (Math.abs(gMap.pos.x - posCoord.x) > gMap.width * gMap.zoomFactor / 4 ||
var posCoord = gps2xy(position.coords.latitude,
position.coords.longitude);
if (Math.abs(gMap.pos.x - posCoord.x) > gMap.width * gMap.zoomFactor / 4 ||