diff --git a/assets/js/map.ts b/assets/js/map.ts index 2dd3c88..3af2d3a 100644 --- a/assets/js/map.ts +++ b/assets/js/map.ts @@ -502,8 +502,13 @@ let MapAPRSMap = { if (self.oms) { // Clear and re-add all markers to OMS on zoom change self.oms.clearMarkers(); - self.markers.forEach((marker) => { - if (marker && !marker._isHistorical && !marker._isClusterMarker) { + self.markers.forEach((marker, id) => { + const markerState = self.markerStates.get(String(id)); + // Only add most recent markers (those with icons) to OMS for spidering + // Fallback: if is_most_recent_for_callsign is undefined, exclude historical markers as before + const shouldAddToOms = markerState?.is_most_recent_for_callsign === true || + (markerState?.is_most_recent_for_callsign == null && !marker._isHistorical); + if (marker && !marker._isClusterMarker && markerState && shouldAddToOms) { self.oms.addMarker(marker); } }); @@ -1547,8 +1552,11 @@ let MapAPRSMap = { marker.openPopup(); } - // Add to OMS for overlapping marker handling (only non-historical markers) - if (self.oms && marker && self.map && !marker._isClusterMarker && !(marker as APRSMarker)._isHistorical) { + // Add to OMS for overlapping marker handling (only most recent packets with icons) + // Fallback: if is_most_recent_for_callsign is undefined, exclude historical markers as before + const shouldAddToOms = data.is_most_recent_for_callsign === true || + (data.is_most_recent_for_callsign == null && !(marker as APRSMarker)._isHistorical); + if (self.oms && marker && self.map && !marker._isClusterMarker && shouldAddToOms) { self.oms.addMarker(marker); } },