Theodore Roosevelt Presidential Library Labs

TRPL Labs  /  Visitor Experience

Visitor Experience

Elkhorn Ranch Walking Guide

A GPS and compass guide to Roosevelt's ranch site that keeps working with no signal.

Screenshot of Elkhorn Ranch Walking Guide

Try it right here

This loads the live project from its own domain, exactly as a visitor would see it.

Location and compass need a phone on site. Add ?sim=1 to the address to tap the map and move your position from anywhere.

What it does

A mobile walking guide to the Elkhorn Ranch site in Theodore Roosevelt National Park. A live map and compass lead visitors to each of the eight National Park Service tour stops along the path, and arriving at a stop opens its story in the words of Roosevelt and his ranch partner Bill Sewall.

There is no cell service at the ranch, so the guide is built to be saved before the drive: the app, photos, an aerial image, and topo tiles for both the trail and the road in. It explains the location and compass prompts before the phone asks, walks visitors through fixing blocked permissions on every common browser, and notices when a phone is only sharing approximate location.

What it can do

  • GPS arrival detection that scales with fix accuracy, with vibration on arrival
  • Compass on Android and iPhone, with a GPS-course fallback while walking
  • Full offline mode through a service worker: about 3 MB plus topo tiles
  • Plain-language permission screen before any browser prompt, plus per-browser recovery steps
  • Detects approximate-location mode and stops auto-opening stories
  • Points to the trailhead and offers directions when the visitor is still far away
  • Staff preview mode with ?sim=1 to walk the route from anywhere

Make it your own

Start by forking the repository into your own organization. Everything below assumes you are working in your fork, not this one.

# clone your fork git clone https://github.com/YOUR-ORG/ElkhornGuide.git cd ElkhornGuide
  1. Fork the repo and replace every word of copy in data/stops.json: the approach note, the stops, quotations, and credits. Keep a source list like docs/fact-check.md.
  2. Replace the stop coordinates and route line, and the aerial image in map/. NAIP imagery from USGS is public domain for any U.S. site.
  3. Adjust the arrival radius and the far-away distance in app.js for your trail.
  4. Update the offline tile ranges and the cache list in sw.js, then bump the cache version.
  5. Enable Pages from main at the root, edit CNAME, and replace the icons and manifest.webmanifest with your own.

Stuck on a step? Open an issue on the repository. Questions from people adapting these for their own institution are the most useful feedback we get.