diff --git a/api/templates/index.html b/api/templates/index.html
index 76d746e..7bf84a1 100644
--- a/api/templates/index.html
+++ b/api/templates/index.html
@@ -862,6 +862,17 @@
letter-spacing: 0.5px;
}
+ .gps-tag {
+ background: #22c55e;
+ color: white;
+ padding: 0.15rem 0.4rem;
+ border-radius: 3px;
+ font-size: 0.7rem;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.3px;
+ }
+
.detection-count {
background: #059669;
color: white;
@@ -1979,6 +1990,7 @@
${detection.detection_method ? detection.detection_method.toUpperCase() : 'UNKNOWN'}
${count}×
+ ${detection.gps && detection.gps.latitude !== undefined ? 'GPS' : ''}
${gpsLink}
@@ -2677,15 +2689,33 @@
// Create popup content with data source indicator
const dataSource = isSessionData ? 'Session' : 'Cumulative';
+ const aliasText = detection.alias ? `Alias: ${detection.alias}
` : '';
+
+ // GPS accuracy indicator
+ let gpsAccuracy = '';
+ if (detection.gps.time_diff !== undefined && detection.gps.time_diff !== null) {
+ const timeDiff = detection.gps.time_diff;
+ if (timeDiff < 5) {
+ gpsAccuracy = ` ✓ Precise (${timeDiff.toFixed(1)}s)`;
+ } else if (timeDiff < 15) {
+ gpsAccuracy = ` ~ Good (${timeDiff.toFixed(1)}s)`;
+ } else {
+ gpsAccuracy = ` ⚠ Approximate (${timeDiff.toFixed(1)}s)`;
+ }
+ } else {
+ gpsAccuracy = ` ? Unknown accuracy`;
+ }
+
const popupContent = `
- Detection #${detection.id} (${dataSource})
+ ${detection.alias || `Detection #${detection.id}`} (${dataSource})
+ ${aliasText}
Protocol: ${detection.protocol}
Method: ${detection.detection_method}
MAC: ${detection.mac_address}
${detection.ssid ? `SSID: ${detection.ssid}
` : ''}
${detection.manufacturer ? `Manufacturer: ${detection.manufacturer}
` : ''}
RSSI: ${detection.last_rssi || detection.rssi} dBm
- GPS: ${lat.toFixed(6)}, ${lng.toFixed(6)}
+ GPS: ${lat.toFixed(6)}, ${lng.toFixed(6)}${gpsAccuracy}
Satellites: ${detection.gps.satellites}
Count: ${detection.detection_count || 1}
Source: ${dataSource} Data