About this Application
National Parks & Forests is a tabbed exploration of two authoritative public datasets — every unit of the US National Park Service and every unit of the US Forest Service. Four linked views cover different ways to explore the data: a Parks map, an embedded analytical dashboard, a searchable list with photos and descriptions, and a Forests map. Either dataset can be toggled on as an overlay on either map, so you can see how they relate across the country.

New to the app? Three-step tour:

Pick a tab. The four tabs in the header — National Parks, Dashboard, List Format, National Forests — are fully independent pages. Click any tab to switch.
Explore the data. On a map tab, click any park or forest to open a popup with authoritative National Park Service / Forest Service detail. On the List Format tab, browse or search the list and click an entry to fly to that park.
Switch basemaps, see legends, overlay layers. The action bar on the upper right of every map tab opens floating panels for Layers, Legend, Basemap Gallery, and Search. Click the map to dismiss any open panel.

Interactive map of every unit of the National Park Service — national parks, historic sites, battlefields, seashores, monuments, rivers, and more. Each point is a separate NPS unit.

Click a point to open its popup with the park's name, narrative description, establishment date, state, region, and its authoritative NPS photo.

Filter by Park Type

Click the Filter by Type action in the header (funnel icon) to open a panel listing every unit type — National Park, National Monument, National Battlefield, National Seashore, and more. Each type is a chip showing the name and its feature count.

How chips behave: chips start ALL selected (every type visible on the map). A colored blue chip is visible on the map; a grey chip with strikethrough text is hidden. Click any chip to flip its state. The "Showing N of 405" counter updates instantly.

Three common workflows

1
Isolate one park type (e.g., only National Parks). Click None to grey out every chip, then click the one type you want ("National Park"). Two clicks total. Only that type is now visible on the map.
2
Hide a single type. Leave every other chip alone and click just the one you want to hide. It flips grey and its points disappear from the map. One click.
3
Compare two or three types (e.g., National Parks + National Seashores). Click None, then click each type you want to include. The map shows only the chosen types and the counter reflects the combined total.

Other controls in the panel:

All — re-selects every type (resets to the default "show everything").

None — clears every chip (hides all parks; map becomes empty until you select a chip).

× in the panel header — closes the panel without changing your selection. Your filter stays applied. Reopen the panel to resume editing.

Clicking the map also dismisses the panel (same as the other floating panels like Layers or Legend). Filter state is preserved.

Filter is client-side and persistent: toggling chips does not re-query the feature service — the filter is applied in the browser via the map's layerView, so response is instant. Switching to another tab and back to National Parks preserves your filter selection. A full page refresh resets all chips to selected.

Overlay Forests: open the Layers panel from the header, then tick National Forests to see the Forest Service units on top of the Parks layer. The Forests layer is loaded on this tab but starts turned off — you're in control. The Park Type filter only affects the Parks layer; toggling a chip off does not affect the Forests overlay.

Mobile: on phones and narrow tablets the filter panel spans nearly the full viewport width and the chips grow slightly for easier tapping. The panel can be scrolled if the type list exceeds the visible area.

The Dashboard tab embeds a full ArcGIS Dashboard authored in ArcGIS Online at allthingsspatial.maps.arcgis.com. It is a complete, interactive analytics surface for the National Parks dataset — not a summary image.

What you can do in the Dashboard:

Filter by region or state using the category selectors — charts and the embedded map update in real time.

Click any chart category (bar, slice, list row) to cross-filter every other widget on the dashboard. Click again to clear the filter.

Read the aggregate indicators — total unit count, acreage sums, and year-established distributions are shown as number widgets at the top.

Open any park's detail by clicking its marker on the dashboard's embedded map; a popup opens with the same NPS attributes shown on the Parks tab.

Authoritative, single source: the dashboard lives in ArcGIS Online — any change the data owner makes there (new charts, new filters, updated styling) appears here automatically on the next load. This app does not cache or fork the dashboard definition.

Performance note: the first time you open the Dashboard tab, the iframe fetches the dashboard runtime (~2 MB). Subsequent visits reuse the same loaded iframe, so switching to Dashboard and back is instant.

Independence from the rest of the app: filters applied inside the dashboard do not affect the Parks, Forests, or List Format tabs — each tab has its own MapView with its own state. If you filter to "National Seashores" in the dashboard and then switch to the Parks tab, the Parks tab still shows all 405 units.

A two-column layout mirroring the Experience Builder "List" pattern: a scrollable calcite-list on the left with one row per park, paired with a linked MapView on the right.

Each list row shows:

• A 96 x 72 px thumbnail — the authoritative NPS photo for that unit, loaded directly from www.nps.gov. Thumbnails load lazily as you scroll, so opening the tab is fast even with 400+ rows.

• The unit's official name (e.g. "Antietam National Battlefield") as the main label.

• The first ~180 characters of the narrative description as the subtitle, truncated with an ellipsis.

Search box at the top of the list: type any keyword — park name, state abbreviation, or fragments of the description — and the list filters in real time. The count badge ("N of 405") updates with every keystroke. Clear with the × in the input to restore all rows.

Click any list item to fly the map to that park (~800 ms smooth pan + zoom) and open its popup. If the park is a point, the map zooms to level 11 centered on the point; if it's a polygon (rare in this dataset), the map fits the polygon's extent with a small margin.

Parks-only by design: the list, thumbnails, search, and click-to-zoom behavior are tied to the National Parks feature service schema (unit_name, description, image). Forests are not shown on this tab — use either of the two map tabs for cross-dataset work.

Search covers name AND description: typing "civil war" surfaces Antietam, Petersburg, Stones River, and other Civil War battlefields even though none have "civil war" in their name — the description field is part of the searchable haystack.

Interactive map of every unit of the US Forest Service — 154 national forests and 20 national grasslands across all 50 states and Puerto Rico. Features are drawn as boundary polygons, not points, so you can see the true extent of each forest.

Why the basemap differs from Parks: the Forests tab defaults to Streets instead of Topo so forest polygons read cleanly against roads and place names. Topo's dense contour hatch competes visually with the polygon fill. You can swap any basemap at any time via the Basemap Gallery button; the choice is remembered only for this tab.

Click any forest polygon to open its popup with the unit's name, state, acreage, and administrative region.

Overlay Parks:

• Open the Layers panel from the header action bar.

• Tick the checkbox next to National Parks. The Parks layer is loaded into this tab but starts turned off — it activates instantly once visible.

• Open the Legend panel to see the symbology for both layers side by side.

Useful for policy work: co-displaying Parks and Forests surfaces adjacencies — a great many NPS units abut a USFS unit (e.g. Yellowstone and Shoshone National Forest). Toggling both on lets you visualize the combined federal protected-land footprint.

Home button on this tab zooms to the Forests layer's extent (continental US with Alaska / Puerto Rico outliers). The initial view on first load is the same fixed North America framing used on the other map tabs.

Zoom in / out. Top-left of the map, or scroll wheel / pinch on touch. Each click changes zoom by one level.
Home. Zooms to the full extent of the current tab's primary dataset — so on the Parks tab, Home frames every NPS unit (including Hawaii and outlying territories); on the Forests tab, Home frames every forest. The initial view always loads at a fixed North America framing regardless of which dataset is primary.
Search. Header action. A floating panel opens that searches addresses, place names, and world geocoder candidates. Selecting a result pans and zooms the map. Click the map to dismiss the panel.
Layers. Header action. Shows every layer on the current map with its visibility checkbox. This is where you toggle the secondary dataset on/off (Parks-on-Forests or Forests-on-Parks).
Legend. Header action. Shows the symbology for every visible layer — icons, colors, break values. Turning a layer off in the Layers panel also removes it from the Legend automatically.
Basemap Gallery. Header action. Swap between Topographic, Imagery, Streets, Dark Gray, Human Geography, Oceans, and more. Your choice is per-tab — changing the basemap on Parks does not change it on Forests.
Scale & Extent. Bottom-left button on every map. Opens a dialog showing the current scale (as both a ratio like 1:2,400 and an engineer's notation like 1" = 200'), the zoom level, and the four corner coordinates of the map in WGS84 decimal degrees. Each value has a Copy button to paste into a report, a search box, or another app.

Dismissing floating panels: any of the panels above (Search, Layers, Legend, Basemap) can be closed by clicking anywhere on the map, or by clicking the same header action again to toggle.

Clicking any park or forest on the map opens its popup. Popups are authored on the underlying feature service and carry over automatically — so any change the data owner makes to the popup template appears here without a redeploy.

Popup contents vary by unit type but typically include the park's name, narrative description, establishment date, state & region, and the authoritative NPS photo (parks) or forest-boundary attributes (forests).

The popup has a Zoom to link that flies the view directly to the feature, and a dock/undock toggle in the top-right corner of the popup card.

Both the Parks map and the Forests map include the other dataset as a secondary layer that starts turned off. This lets you compare the two networks without leaving the current tab.

To overlay:

1
Open the Layers panel from the action bar.
2
Tick the checkbox next to the hidden dataset.
3
(Optional) Open Legend to identify the symbology for the newly-visible layer.
The List Format tab is intentionally Parks-only — the list, search box, and thumbnails are tied to the Parks schema. Use either map tab for cross-dataset overlay work.

Navigation:

Drag
Pan the map.
Wheel
Zoom in / out at the cursor position.
Shift
Hold and drag a rectangle to zoom to that box.

General:

• The app remembers which tab you were on during a session. A full page refresh returns you to the default National Parks tab.

• The basemap and layer visibility choices are scoped per-tab — each tab has its own independent MapView, so changes don't bleed across tabs.

• The dashboard's filters inside the embedded iframe are independent from the filter / search controls in the rest of the app. Changing a filter inside the dashboard does not affect the Parks or List Format tabs, and vice versa.

National Parks data — a public feature service hosted on allthingsspatial.maps.arcgis.com. Each feature includes the NPS unit's name, description, photo URL, establishment date, state, and region.

National Forests data — a public feature service hosted on the same ArcGIS Online organization. Forest boundary polygons with attribute detail on each unit.

Dashboard — an ArcGIS Online dashboard authored directly in the allthingsspatial organization. Shared publicly so it loads anonymously inside this app.

Basemaps — Esri ArcGIS Location Platform vector tile services. The app ships with topo-vector on Parks / List Format and streets-vector on Forests; any other style can be applied live via the Basemap Gallery button.

Built with — ArcGIS Maps SDK for JavaScript v5 (@arcgis/core), Esri Calcite Design System v5, TypeScript, and Vite 8 with Rolldown. Deployed on AWS Amplify with continuous delivery from GitHub.

© 2026 All Things Spatial LLC  ·  Powered by ArcGIS Maps SDK for JavaScript v5  ·  Calcite Design System v5