The Map tab plots your logged contacts on an interactive Mapbox map, showing great-circle paths from your station to each contact.
Your station is plotted using the best available location source:
| Pin Color | Source | Accuracy |
|---|---|---|
| Purple | Geocoded from your address (city, state, zip via Mapbox) | High |
| Deep pink | Calculated from your grid square center | Medium |
Click the station pin to see a popup showing which source is being used and your available location data.
If neither your address nor grid square is configured, an alert appears when you open the Map tab: "Your station address or grid square has not been set." Set these in Station Settings to enable operator plotting.
A Center on QTH button (top-right) flies the map back to your station location at zoom level 10.
Each logged contact appears as a marker with a great-circle path line back to your station:
| Marker Color | Source | Meaning |
|---|---|---|
| Green | Address-based (geocoded from QRZ data) | High accuracy |
| Yellow | Grid-based (center of Maidenhead square) | Medium accuracy |
Contacts without any location data are excluded from the map.
Path lines are colored by the primary band used in the contact. If no band is recorded, the line is gray. One line is drawn per contact (not per QSO), keeping the map clean even with large logs.
QSOs with POTA references are plotted at the park location instead of the operator's home address. These appear as green tree icons.
US-3094 (4)(19) W1AW (19 CW)
(2) K0ABC (2 SSB)
/api/pota-locations, which checks Redis first and falls back to the POTA API for cache misses. Results are cached in your browser's sessionStorage for the duration of your session.Non-reference QSOs (contacts without a POTA park reference) are grouped by callsign. Instead of one marker per QSO, you see one marker per unique contact:
W1AW (3) show how many QSOs you've had with that stationA legend overlay appears in the top-right corner showing all bands and modes present in your QSO data. Each band has a color-coded dot matching its line color on the map.
| Band | Color |
|---|---|
| 160m | Purple |
| 80m | Light blue |
| 60m | Dark purple |
| 40m | Rose |
| 30m | Deep blue |
| 20m | Teal |
| 17m | Violet |
| 15m | Cyan |
| 12m | Maroon |
| 10m | Sage green |
| 6m | Dark teal |
| 2m | Gold |
Toggling is instant — map layers update in real time via Mapbox filter expressions.
Click any marker on the map to jump to the Logbook tab with the search pre-filtered:
US-3094)W1AW)This uses the same search engine as the Logbook & Search power bar.
The map is optimized for large logs:
A loading spinner overlay appears while QSO data is being processed.
The map initializes lazily — it doesn't load until you first click the Map tab. The Mapbox token is fetched from /api/mapbox-key (kept server-side, not embedded in your browser). When you switch away and back, map.resize() is called to handle any container size changes.
The map style automatically matches your theme (light or dark). Changing themes re-renders the map with the appropriate Mapbox style.