GPS anzeige verbessert und planung für abarbeitung der Route angefangen
This commit is contained in:
@@ -331,6 +331,9 @@ header {
|
||||
line-height: 1.9;
|
||||
pointer-events: none;
|
||||
}
|
||||
.gps-quality-good { color: #00ff91; }
|
||||
.gps-quality-mid { color: #FFB300; }
|
||||
.gps-quality-bad { color: #FF5252; }
|
||||
.c-tl { top: calc(13px * var(--cam-scale)); left: calc(13px * var(--cam-scale)); }
|
||||
.c-tr { top: calc(13px * var(--cam-scale)); right: calc(13px * var(--cam-scale)); text-align: right; }
|
||||
.c-bl { bottom: calc(13px * var(--cam-scale)); left: calc(13px * var(--cam-scale)); }
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
</div>
|
||||
<div class="c-bl">
|
||||
GPS: <span id="gps-state">Offline</span><br>
|
||||
SAT: <span id="gps-sats">--</span><br>
|
||||
POS: <span id="gps-accuracy">--</span><br>
|
||||
LAT: <span id="gps-lat">--</span><br>
|
||||
LON: <span id="gps-lon">--</span>
|
||||
</div>
|
||||
@@ -603,17 +603,41 @@ function updateAxesDisplay(x, y) {
|
||||
setText("dpy", formatAxis(y));
|
||||
}
|
||||
|
||||
function setGpsAccuracyDisplay(valueMeters) {
|
||||
var node = document.getElementById("gps-accuracy");
|
||||
if (!node) return;
|
||||
|
||||
node.classList.remove("gps-quality-good", "gps-quality-mid", "gps-quality-bad");
|
||||
if (typeof valueMeters !== "number" || isNaN(valueMeters) || valueMeters <= 0) {
|
||||
node.textContent = "--";
|
||||
return;
|
||||
}
|
||||
|
||||
node.textContent = formatNumber(valueMeters, 1) + " m";
|
||||
if (valueMeters <= 1.0) {
|
||||
node.classList.add("gps-quality-good");
|
||||
} else if (valueMeters <= 3.0) {
|
||||
node.classList.add("gps-quality-mid");
|
||||
} else {
|
||||
node.classList.add("gps-quality-bad");
|
||||
}
|
||||
}
|
||||
|
||||
function updateGpsOverlayFromFix(message) {
|
||||
if (!message) return;
|
||||
markGpsFresh();
|
||||
|
||||
var hasFix = message.status && message.status.status >= 0;
|
||||
if (!hasFix) {
|
||||
setGpsAccuracyDisplay(NaN);
|
||||
setText("gps-lat", "--");
|
||||
setText("gps-lon", "--");
|
||||
return;
|
||||
}
|
||||
|
||||
var covariance = Array.isArray(message.position_covariance) ? Number(message.position_covariance[0]) : NaN;
|
||||
var accuracyMeters = covariance > 0 ? Math.sqrt(covariance) : NaN;
|
||||
setGpsAccuracyDisplay(accuracyMeters);
|
||||
setText("gps-lat", formatNumber(Number(message.latitude || 0), 5));
|
||||
setText("gps-lon", formatNumber(Number(message.longitude || 0), 5));
|
||||
}
|
||||
@@ -622,9 +646,6 @@ function updateGpsOverlayFromStatus(text) {
|
||||
var value = String(text || "Offline");
|
||||
markGpsFresh();
|
||||
setText("gps-state", value);
|
||||
|
||||
var satMatch = value.match(/(\d+)\s*Sat/i);
|
||||
setText("gps-sats", satMatch ? satMatch[1] : "--");
|
||||
}
|
||||
|
||||
function updateModeDisplay() {
|
||||
@@ -727,7 +748,7 @@ function clearRosLiveDisplay() {
|
||||
liveIndicator.classList.add("is-offline");
|
||||
}
|
||||
setText("gps-state", "Offline");
|
||||
setText("gps-sats", "--");
|
||||
setGpsAccuracyDisplay(NaN);
|
||||
setText("gps-lat", "--");
|
||||
setText("gps-lon", "--");
|
||||
setText("overlay-speed", "--");
|
||||
|
||||
Reference in New Issue
Block a user