Theodore Roosevelt Presidential Library Labs

TRPL Labs  /  Visitor Experience

Visitor Experience

Camping on Public Land

Answers "can I camp here?" from a phone's location across a patchwork of public and private land.

Screenshot of Camping on Public Land

Try it right here

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

Not legal advice. Land records are approximate; posted signs and the managing agency always have the final word.

What it does

The land around Medora is a patchwork of national grassland, national park, state trust land, wildlife areas, and private ranches, often with no fence between them and different rules on each. This tool answers one question from a phone's location — who manages this ground, can I camp here, and can I have a fire today — without the location ever leaving the device.

Around that button sit a map of public land by manager, today's fire restrictions and fire danger, rain on clay roads, permit and reservation links, and an offline map that can be saved before heading out. Land records rebuild weekly and conditions every six hours. When in doubt it says "check first," never "allowed."

What it can do

  • One-tap land check: manager, camping rules, and today's campfire status
  • Warnings near boundaries and when the GPS fix is poor
  • Quarter-mile no-camping zones around developed Forest Service sites
  • Campfire logic from county and agency declarations, fire danger, and Red Flag Warnings
  • Live check of electronically posted private land, requesting only the posted flag
  • Offline map that saves about five miles of topo around the map center
  • Opens a GitHub issue when the posted Forest Service orders change

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/Camping.git cd Camping
  1. Fork the repo and set your bounding box and extra areas in collector/lands.py. PAD-US covers every state; swap the North Dakota trust-land and Game and Fish layers for your state's equivalents.
  2. Rewrite the rules in CLASSES at the top of docs/camping.js for your land managers, with a source for each.
  3. Point collector/conditions.py at your state's fire danger and burn-restriction services and your forest's alerts page.
  4. Never request owner or lessee fields from parcel services. The collectors here deliberately ask only for tract, access, and posted status.
  5. Enable Pages from main, folder /docs, set your CNAME, enforce HTTPS (location needs it), and give workflows read and write permission.

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.