Why POTAmap?

I’m a retired professor of computer science, and I still teach a few courses here and there. I like to keep my skills sharp. Just as I retired, I fell into the world of POTA, which absolutely driven by data. I like data a lot, especially coming up with ways to associate and represent data, and when I’d done a few activations and realized that I wanted a way to visualize my activity, well, what was a boy to do? I sat down and started coding.

I was obsessed in those early POTA days with both building up to 100 unique references and visiting parks that had very little activity. I wanted a way to see where I’d worked, where I hadn’t, and which of the ones I hadn’t fell into the ‘underrepresented’ category.

Accessing POTAmap

The map is available from the POTAmap pick on the PN&R menu bar, or you may access it directly at the URL https://pota.review/potamap. You don’t need to be logged in to PN&R to use the map.

The map will ask you to allow it to use location services, and if the map hasn’t seen you before it will also ask you for your callsign. You don’t need to provide a callsign unless you want your personal activations displayed on the map. An example of that is the image at the top of this post, displaying POTAmap as live wallpaper. In this view I’m really just interested in current activations as a sort of status board, and so I didn’t bother to give it my callsign. You’ll notice that the map center defaults to the center of the USA in this state.

In the upper left you’ll see + and buttons to scale the map, and you can also gesture (pinch in / out) if you are on a touch screen. Click and hold to drag the map around. The map remembers its last state.

Uploading Your Activations

One of the first things you’ll want to do is to upload a file containing your current activations. Unfortunately there isn’t yet a way to do this in any other way — I maintain hope that the POTA devs will take pity on use and provide access to the data at some point in the future.

On the plus side, there is a way to get your 25 most recent activations, and so once you’ve seeded the map with your history it will automatically update itself each time you access the map. I should note that if you don’t have more than 25 activations to begin with, you can skip the load described below, as those will be automatically picked up.

Here’s how to load your data:

Log in to your account at https://pota.app. Once logged in, choose My Stats from the Account dropdown at the top right:

On your Stats page you’ll see an Export CSV button. Click it to download your history to your computer.

Now, open the POTAmap back up and select the top button, ‘Upload My Activations‘. Choose your downloaded file, and you are all set. Again, this is something you should only need to do once.

Spot Colors / Show All Spots

The initial view shows all data.

This first image is the default view, and it shows more or less everything. The map here is scaled to a section west of my QTH. Here’s the color code:

Spot Color Meaning
Green Your own activations
Deep blue / black Zero activations (ATNO)
Gold ring Park has a PN&R review available 
Pulsing red, yellow, or green Currently activating (see Current Activations below)
Pulsing purple New park in past 30 days (click to see why)

In some areas of the country there aren’t many ATNO (All-Time New One) parks left, so keep an eye out for any new ones that might pop up. Check any pulsing purple spots you see on the map to check if someone’s been there yet or not.

Getting Information About References

There are two ways to see information about a spot. Hovering will give you a quick summary, and clicking provides additional details:

Hover to get quick info.

Clicking a spot will open the park’s data panel with information about the park, activation data, a link for driving directions using Google Maps, and a link to the PN&R review if it currently is published.

Clicking opens a park’s data panel.

You can click the top link to open up the official POTA page for the park, and the Get Directions link will open up Google Maps to provide navigation to the park from your current location.

If a park is being currently activated, information about the active spot is provided by hovering, and a click will get you a bit of extra data along with the other links just mentioned. Note that for parks that are currently being activated, you can use the Park Query Language (PQL) query ?CALL: to quickly jump to a park that you know someone is at, for example to center the map on W1GRD’s activation, the PQL query is: ?CALL:W1GRD. PQL is described in more detail later in this document.

Current activations are updated every six minutes.

Recent activation information is under the (you guessed it) Recent Activations tab — it displays the three most recent activations.

The three most recent activations are displayed.

Menu Controls

The upper right corner of POTAmap includes a menu that controls most common options. Click the ‘hamburger’ icon to open it up. In its compact form you’ll see three general areas: Search, Filters, and Info. Clicking a section heading toggles that section open or closed. Click the ‘X’ in the top right to close the menu panel.
 
Options menu closed.

Searching

The search panel in POTAmap provides several ways to find and save information about parks.
Search menu.

A basic search can be done from the Search box using the name or number of a park. For example, if you are looking for US-12345, just type us-12345 or just 12345 into the box and hit Enter. The map will fly to center the park at your current zoom level.

If the park you are looking for is in the current map window, it will be highlighted in yellow. The search is progressive, so a search for us-1234 will highlight parks that start with US-1, then US-12, then US-123, and so on as you  type.
 
You can also type text to search for, and that text will match against parks that are in the current view. Here, for example, is a look in my area at parks that have the word ‘Forest’ in their title. They are highlighted in yellow. 
 

 

Center On My Location centers the map on your current location, at your current zoom level

Saved Searches

The Saved Searches panel.

Any search operation, including PQL searches, can be saved and replayed. In the example above, three searches have been saved. To save the results of a search, just give it a name and click Save Current.

To replay any search, click the ‘play’ icon. Here’s my Virginia trip highlighted. The PQL query for this was: ?mine:1 sate:va.

Click the trashcan icon to delete a saved search.

When you load a saved search, its original query is inserted in to the Search box for you to edit if you wish to.

As an example of what can be done, here’s a saved search that looks for parks nearby that are in a ‘donut’ shape around me, that I haven’t activated. The PQL query here is ?mine:0 mindist:40 maxdist:100.

Sometimes I’ll do a full search, maybe for parks not more than 25 miles away that have no CW activations, but often I’ll run across a park mentioned on QRZ or Discord that sounds interesting, and I’ll just do a single search on it and then save the search. That way I’m building up a little library of interesting places to go.

Filters

Filters can be applied to the current map view that will help you zoom in on the data you are interested in. Open the Filters panel by clicking the Filters header.

Initial Filters with nothing selected.

Click an individual filter option to toggle it on or off, or click the All / Clr option to toggle everything on or off at once.

My

Click My to see only your own activations on the map. You can load your activations into the map from the Info panel.

Filters: My activations.

Active

Current activations are highlighted with the Active filter, using color codes for mode.

Filters: Active parks.

New

A ‘new’ park is one that has been added to map in the past 30 days. It isn’t necessarily an ATNO with zero activations, it’s just that it is new. You can hover over a purple ‘new’ park to see if it has been activated yet. 

New parks are highlighted in purple.
Checking a new park to see if it is an ATNO (this one is!).

Spot Colors

The final option on the Filters panel allows you to turn individual modes on or off on the map. For example, if you only want to see current activations that are using CW or voice but not data, you can turn data off.

Mode filters.

Here are two map views, one showing everything happening around Chicago, and then the same view but with FT8/FT4 activations not visible.

Turning off data with filters.

Info

The Info panel lets you set options and upload your activations. It also has a link to this reference page.

Info panel.

When you load the map for the first time, it will ask for your callsign, which is displayed in this section. POTAmap uses your callsign to automatically look up and load your most recent 25 activations from POTA.app.

To display your own activations on the map, first download your activations file from POTA.app (Export CSV from the My Stats upper-right menu on POTA.app), and then upload the file to POTAmap. Once that’s loaded you should see future activations appear automatically.

Park Query Language (PQL)

Park Query Language (PQL) is a feature of POTAmap that allows you to do database-style queries against POTA park data. You can find the search box under the ‘hamburger’ menu at the top right of the map. This document explains how PQL is used

General advice:

  • Start every PQL query with ?. Keys are case‑insensitive; values are mostly case‑insensitive too.
  • You can mix structured keys with free text (bare words or "quoted phrases").
    Free text matches the park name and reference (e.g., US-1234), plus basic location text.
  • Note that the keys MAX and MIN work in two ways. If you have selected a mode (?MODE:CW), MAX will only look at that mode. Without a mode, it looks at the total number of QSOs in the reference.

 

Quick grammar

? KEY:VALUE KEY:VALUE ... ["free text"]
    • Keys AND together (all conditions must match).
    • Unknown keys are ignored (forward‑compatible).
    • Booleans accept 1|0|true|false.
    • Order doesn’t matter.
    • By default, matches are limited to the current map view (visible bounds). See Global scope below for exceptions.

 

Supported keys

Key Value Meaning Notes
ACTIVE 1 | 0 | true | false Currently on‑air Uses live spot data; ACTIVE:1 = only parks with a current spot.
CALL | CALLSIGN 1 | 0 | true | false Find on-air activator Implies ACTIVE:1.Find a currently activating park using the call.
COUNTRY name or 2‑letter code Country filter e.g., COUNTRY:CAGlobal scope(auto‑pan/fit).
DIST a-ba-, or -b (+ units) Distance range shorthand Examples: DIST:20-50DIST:-30kmDIST:100-Global scope (auto‑pan/fit).
MAX integer ≥ 0 Max QSOs in selected bucket If MODE is set, applies to that mode’s QSO count. If no MODE, applies to total QSOs. Use MAX:0 for “none yet”.
MAXDIST number + optional unit Max distance from you Same units as above. Global scope(auto‑pan/fit).
MIN integer ≥ 0 Min QSOs in selected bucket Mirrors MAX. With MODE, applies to that mode’s QSO count; otherwise to total QSOs.
MINDIST number + optional unit Min distance from you Default unit: miles. Accepts mi / km (e.g., 25km). Global scope(auto‑pan/fit).
MINE 1 | 0 | true | false Your activations MINE:1 = parks you’ve activatedMINE:0 = parks you haven’t activated.
MODE CW | SSB | PHONE | DATA | FT8 | FT4 Select a QSO “bucket” PHONE == SSBFT8/FT4 map to DATA.
NEW 1 | 0 | true | false Recently added parks NEW:1 = created in the last 30 days.
NFER 1 | 0 | true | false Match parks that have ≥1 NFER Example: NFER:1 STATE:MA = parks in MA that have an NFER relationship.
NFERWITH reference or comma list Parks that are NFER‑neighbors of any given reference(s) Example: NFERWITH:US-6909or NFERWITH:US-6909,US-3857Global scope(auto‑pan/fit).
REF / REFERENCE / ID reference or comma list Specific park(s) by reference e.g., REF:US-1234 or REFERENCE:US-1234,US-5678Global scope(auto‑pan/fit).
SORT DIST | NAME | QSOS | ACTIVATIONS Sort result order DIST requires a known user location (geolocate first).
STATE 2‑letter code U.S. state/territory filter Accepts MAUS-MA, etc. Matches multi‑state parks too. Global scope(auto‑pan/fit).

Scope of queries (auto‑pan/fit)

Generally speaking, a PQL query operates on the visible map, that is, the view of the map you see on the screen. Some keys operate in a ‘global’ scope, across the entire map.

Keys that operate globally include STATECOUNTRYREF/REFERENCE/IDDIST/MINDIST/MAXDIST, and NFERWITH. The result of these searches will fit/zoom the map to display all matches automatically.

Examples

Between 20 and 50 miles away, zero CW QSOs, not yet activated by you: ?MINE:0 MODE:CW MAX:0 DIST:20-50

Parks on the air (spotted now) in Massachusetts, DATA mode, with ≤10 QSOs: ?ACTIVE:1 STATE:MA MODE:DATA MAX:10

Recently added parks within 30 miles: ?NEW:1 MAXDIST:30

All parks you’ve already activated in Rhode Island: ?MINE:1 STATE:RI

DATA‑light targets (≤5 DATA QSOs) within 100 miles, closest first: ?MODE:DATA MAX:5 MAXDIST:100 SORT:DIST

Require at least 10 total QSOs (no mode specified): ?MIN:10

Require 1–5 CW QSOs (inclusive): ?MODE:CW MIN:1 MAX:5

NFER neighbors of US‑6909 (all parks that are in US‑6909’s NFER list, or vice versa): ?NFERWITH:US-6909

NFER neighbors of either US‑6909 or US‑3857 that you haven’t activated, within 60 miles: ?NFERWITH:US-6909,US-3857 MINE:0 MAXDIST:60 SORT:DIST

Free‑text + structured: parks named “Forest” with no CW QSOs: ?"Forest" MODE:CW MAX:0

Use PHONE alias for SSB: ?MODE:PHONE MAX:0

Kilometers accepted: within 40 km and not yet activated by you: ?MINE:0 MAXDIST:40km

Specific references anywhere (global scope): ?REF:US-1234,US-5678


Tips

    • If you start typing without ?, the search runs as normal name/reference text search.
    • STATE matches multi‑state parks: STATE:MA will include parks that span MA/RI, MA/NH, etc.
    • MODE:FT8 or MODE:FT4 are treated as MODE:DATA.
    • Booleans accept 1/0 or true/false.
    • NFERWITH is a union over the listed references (matches neighbors of anytarget).
    • Distance requires a user location; use your browser’s geolocation or the Center on My Location button.
    • When no global‑scope key is present, results are constrained to the current map bounds.
    • If your result set includes a POTA trail, the pin identifying that trail might be hundreds of miles from your search area and it’ll be included in the display. Use STATE or MAXDIST to limit the scope of the search.

Version Information

The very bottom of the hamburger menu displays some information about which version of the app, the underlying database, and the ‘delta’ or change file you are using. A full data load is relatively large, and so once the map is initially loaded, a series of daily patch files is generated by the POTAmap server that tracks changes to the park list, and it’s the delta that gets pushed most often to your browser.

The map will periodically pull the entire dataset to keep everything up to date, but for the most part the only things you’ll see incoming is a delta file.

Future Work

Those are the basics. The POTAmap is under active development and new features are geared mainly toward allowing users to customize the display, and to proved a simpler way to choose which information you want to see. We’re also cooking up Rove Mode to help find optimal routes between parks. If you’d like to see a feature implemented, just drop me a note at perry@w1grd.com and I’ll add it to the tracker. Feel free to send questions and clarifications, too!

Views: 508

2 Responses

    1. LOL thanks, it was one of those tools I started building just for myself and then realized that other folks might use it, too, so there’s some of my own bias baked in, but I’ve been slowly pulling that out of the code.

      One thing I quickly learned is that there is for some reason no official POTA API, which is a web endpoint to access to get data, and that makes things so much more difficult for devs like me trying to offer extra services like this.

      The most controversial feature of the map, which I didn’t dwell on, is that you’ll see “inferred n-fers” listed. Periodically there’s some code that looks at recent activations across the top 100 operators and notices patterns of activations that match an n-fer, and they are stored and reported.

Leave a Reply

Your email address will not be published. Required fields are marked *