Tracking a station at zoom 8 or below draws a blank map when its last packet is outside the trail window #62
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
At zoom 8 and below the map clears every marker and then draws either the heat map or, while a callsign is tracked, that station's trail. The trail filter drops packets older than the trail window, and when nothing survives the function returns without pushing any event. The result is an empty map with the sidebar still reading
Tracking: W5ABC, so the station appears to vanish at exactly the zoom where the display mode changes. Zooming to 9 brings it back.Evidence
At
2f150f66:lib/aprsme_web/live/map_live/display_manager.ex:27pushesclear_all_markersbefore choosing the low zoom display.lib/aprsme_web/live/map_live/display_manager.ex:85sends the heat map only when nothing is tracked, otherwisesend_trail_line_for_tracked_callsign/1.lib/aprsme_web/live/map_live/display_manager.ex:232returns the socket untouched when the trail has no packets, so no event follows the clear.lib/aprsme_web/live/map_live/display_manager.ex:306drops every packet older thanpacket_age_threshold, which defaults to one hour atlib/aprsme_web/live/map_live/index.ex:42.docs/tracked-callsign-behavior.md:65promises the last received packet is always shown for a tracked callsign.Expected
The tracked station stays visible at every zoom, either as a durable marker or by falling back to the heat map, so a blank map never has a tracked callsign in the sidebar.
How to verify
Build a DisplayManager socket at zoom 8 with a tracked callsign and one visible packet older than the threshold, call
handle_zoom_threshold_crossing/2, and assert an event carrying the station is pushed. Today onlyclear_all_markersis pushed.Acceptance criteria
Effort: S
Lens: product