kleinigkeiten

This commit is contained in:
2026-05-28 08:22:30 +02:00
parent a42b87507b
commit abfc8be412
3 changed files with 36 additions and 70 deletions
+33 -1
View File
@@ -33,7 +33,7 @@
<path d="M12 12C13.5 9.2 17.8 8.2 21 10" stroke="#1B120F" stroke-width="2.8" stroke-linecap="round"/>
<path d="M29 7.5C31.8 6.2 35.6 7.1 37.6 9.7" stroke="#1B120F" stroke-width="2.8" stroke-linecap="round"/>
</svg>
<span class="hdr-title">CUNO&nbsp;<em>ADMIN</em></span>
<span class="hdr-title" title="CUNO = Celestian Unified Navigation and Observation">CUNO&nbsp;<em>ADMIN</em></span>
<div class="hdr-div"></div>
<div class="hdr-badge">System Control</div>
<div class="hdr-gap"></div>
@@ -806,7 +806,9 @@
roverMapState.lastFixAt = null;
roverMapState.gpsStatusText = 'Offline';
roverMapState.satellites = '--';
roverMapState.trackPoints = [];
updateMapTelemetryPanel();
updateRoverMapVisibility();
setDriveEstimatorState('offline', 'state_inactive');
setText('drive_estimator_speed', '--');
@@ -1389,6 +1391,32 @@
renderWaypointList();
}
function updateRoverMapVisibility() {
var fallback = document.getElementById('rover_map_fallback');
if (fallback) {
var showFallback = !roverMapState.hasFix || typeof roverMapState.roverLat !== 'number' || typeof roverMapState.roverLon !== 'number';
fallback.textContent = showFallback
? 'Keine GPS-Position verfügbar. Auf der Karte wird erst etwas angezeigt, wenn ein gültiger Fix vorliegt.'
: 'Kartenbibliothek nicht geladen. GPS-Daten sind trotzdem unten sichtbar.';
fallback.hidden = !showFallback;
fallback.classList.toggle('map-hidden', !showFallback);
}
if (!roverMapState.mapReady) return;
var hasVisiblePosition = roverMapState.hasFix && typeof roverMapState.roverLat === 'number' && typeof roverMapState.roverLon === 'number';
if (roverMapState.roverMarker) {
roverMapState.roverMarker.setStyle({opacity: hasVisiblePosition ? 1 : 0, fillOpacity: hasVisiblePosition ? 1 : 0});
}
if (roverMapState.roverAccuracyCircle) {
roverMapState.roverAccuracyCircle.setStyle({opacity: hasVisiblePosition ? 0.7 : 0, fillOpacity: hasVisiblePosition ? 0.1 : 0});
roverMapState.roverAccuracyCircle.setRadius(hasVisiblePosition ? (roverMapState.accuracyMeters || 0) : 0);
}
if (roverMapState.roverTrackLine) {
roverMapState.roverTrackLine.setLatLngs(hasVisiblePosition ? roverMapState.trackPoints : []);
}
}
function getWaypointInsertIndexFromRouteClick(latlng) {
if (!roverMapState.waypoints.length) return 0;
@@ -1685,6 +1713,7 @@
applyWaypointPlanningState();
renderWaypointMarkers();
updateMapTelemetryPanel();
updateRoverMapVisibility();
}
function updateRoverPositionOnMap() {
@@ -1704,6 +1733,7 @@
roverMapState.trackPoints.push(latlng);
if (roverMapState.trackPoints.length > 60) roverMapState.trackPoints.shift();
roverMapState.roverTrackLine.setLatLngs(roverMapState.trackPoints);
updateRoverMapVisibility();
if (!roverMapState.hasCenteredOnFix) {
roverMapState.map.setView(latlng, 17);
@@ -1731,7 +1761,9 @@
roverMapState.roverLon = null;
roverMapState.roverAlt = null;
roverMapState.accuracyMeters = null;
roverMapState.trackPoints = [];
updateMapTelemetryPanel();
updateRoverMapVisibility();
renderPlannedRoute();
return;
}