Skip to content
/ app-polo Public

Provide a spot map to go with the existing spot list#95

Draft
ianrenton wants to merge 16 commits intoham2k:mainfrom
ianrenton:feature/spot-map
Draft

Provide a spot map to go with the existing spot list#95
ianrenton wants to merge 16 commits intoham2k:mainfrom
ianrenton:feature/spot-map

Conversation

@ianrenton
Copy link
Contributor

@ianrenton ianrenton commented Dec 15, 2024

Hi, I am not sure this is 100% complete but I'm submitting it for your review and comment.

I have implemented a spot map, and made the existing spot view toggle between a list and a map by pressing a new button.

image

When clicked, spots are shown on a map instead of a list. The button then allows toggling back. On the map, spots are coloured by band, and sized based on their age (more recent spots are larger).

image

Upon clicking a marker, a Callout appears with details of the spot.

image

When viewed from inside an Operation, the user QTH is shown, the Callouts include distance and bearing, and spots already worked appear in grey. Pressing the callout works the same as pressing the spot in the list, i.e. it takes you to the QSO screen to add a new QSO with the appropriate details populated.

When spots are viewed outside the context of an operation, the above features are not available.

Some potential points for discussion:

  • Probably some work to do on visual look and feel, e.g. would you prefer the frequency display to be in two different sizes as on the spot list; or the "X min ago" in monospaced font, etc.?
  • I do feel the menu structure is a bit awkward now. Inside an Operation, QSO List and QSO Map are separate top-level tabs, whereas Spot List and Spot Map are a choice one level down. However, I don't know if there's a good solution to this. I'd rather not make Spot List/Spot Map two different tabs (because that would cause confusion with the Spot List/Spot Map toggle outside of an Operation), but I also wouldn't want to make QSO List/QSO Map a level down, as that would break existing users' expectations and reduce usable screen space.
  • I have no way to test this on iOS. I don't believe I've done anything bespoke to Android, though there's a chance that the different map implementation on iOS may cause an issue (in particular if you have an iOS device/emulator please check the onPress event on the Callout works).

@ianrenton
Copy link
Contributor Author

I did have a go at embedding a whole SpotItem inside the Callout, but it looks a bit janky, and I haven't found a nice way to resize the width down. I am leaning towards it being better to stick with a layout based on the existing QSO map rather than based on SpotItem, but I'm happy to port some of the style over (frequency meter, icon etc) if you think it's worth doing.

@ianrenton
Copy link
Contributor Author

ianrenton commented Dec 16, 2024

As suggested on Discord, I have copied more of the formatting from SpotItem and compressed the size of the popup slightly. Hopefully it now looks a bit more "on brand" with the list view.

image

Based on the discussion on the forum, I have not hidden the feature behind a new Settings entry.

I've seen a multi-program activation and can confirm the display looks the same as in the list view, as expected:

image

@ianrenton
Copy link
Contributor Author

Merge conflict resolved

# Conflicts:
#	src/screens/OperationScreens/OpMapTab/components/MapWithQSOs.jsx
#	src/screens/OperationScreens/OpSpotsTab/components/SpotsPanel.jsx
@ra1nb0w
Copy link

ra1nb0w commented May 19, 2025

Nice feature @ianrenton!
A nice addition, would be a way to select multiple bands in the filter like: 20M+40M.
Thanks for all your work!

@ianrenton ianrenton marked this pull request as draft December 27, 2025 11:11
@ianrenton
Copy link
Contributor Author

I've merged upstream main into my branch but it looks like more significant changes will be required from my side to migrate this to match the current state of PoLo. In particular, it looks like PoLo no longer uses react-native-maps and uses a Mapbox library instead, which will likely require a rewrite of my feature.

Set this PR to draft until I have been able to do this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants