Background
This trail database was started in late 2018 as a unique feature of the original Wild West Jeep Club website. The goal was to provide easily accessible trail data for Nevada and surrounding states, specifically for those trails frequently run by the club.
Over the years, it has become somewhat of a hobby of mine, and has evolved beyond what I originally planned for it. It's become a highly interactive, community driven resource for the western US offroad community.
Following the dissolution of the club in early 2024, I decided to re-home the entire database and all its features to its own domain, thus the creation of Wild West Offroad Trails, a name that's familiar to those who have enjoyed its use before, and intriguing to those who are finding it for the first time.
Nerd Stuff
Mapping & Geocoding Services
All interactive maps and static map images (trail thumbnails) on this website are generated by Mapbox (www.mapbox.com) using their GL JS and Static Images APIs.
Geocoding services, used to convert geographic coordinates into a human-readable address or location description, are provided by the Mapbox Geocoder API.
Weather
Weather data is retrieved using APIs from the National Weather Service (www.weather.gov).
Visual Graphs (Elevation Profiles and Water Flow Charts)
Visual graphs and charts are generated using the open-source ChartJS.
GPX Upload Processing
When a GPX file is uploaded to this site, onboard custom scripts scan the file for validity, then iterate through the waypoints and track or route segments, extracting necessary data, which is then stored in geoJSON format in a database. The original uploaded file is stored for diagnostic purposes, but not used again by the system.
Elevation Data
During upload processing, each GPX file track or route point is checked for elevation data. If an elevation value is missing from a location point, it is added automatically using lookups from onboard DEM (Digital Elevation Model) data. Currently, I am using DEM models from the Shuttle Radar Topography Mission (SRTM) with a resolution of 1 arc second, about 30 meters. Testing is currently in the works to completely replace these models with 1/3 arc second, about 10 meters, and 1 meter DEM models from the 3D Elevation Program (3DEP). This transition will drastically increase the accuracy and resolution of any part of this website that deals with elevation data.
Static Track Previews and Thumbnails
Thumbnails and track previews are generated using downsampled versions of the full track. Mapbox's Static Images API has a maximum query length, so the coordinate point array is run through a script to intelligently delete elements until the array contains fewer than 1,000 coordinate points. Then the array is converted to a Google Maps Encoded Polyline, URL encoded, and passed to the API to generate the map image with the track overlay.
File Downloads
When a user downloads a file for a trail, internal scripts dynamically create the file from the database each time a download is requested. This ensures that the user is getting the absolute latest data. The scripts construct files in compliance with the GPS Exchange Format, Keyhole Markup Language XML, and GeoJSON RFC 7946 schemas.
Water Flow Data
We are experimenting with capturing and storing water flow rates for rivers and streams that intersect or closely parallel the trails. Right now, every hour on the hour, data is downloaded from DreamFlows (www.dreamflows.com) for target rivers and stored in our database. There is a historical graph on some of the trail info pages with associated flow rate data that can be interacted with.
This is highly experimental. The methods we use to capture data may change as this evolves.
Changelog
This changelog documents most site updates going back to around October 2019. I try to keep it focused on changes that actually affect people using the site, rather than every tiny code tweak behind the scenes.
April 4, 2026
- added nearby trails section on trail details pages
- this new section will show you the 4 closest trails within 100 miles, calculated using approximate track centerpoints
- added state-specific explore pages like `/explore/nevada` so you can browse trails by state
- state pages now have a simple summary card at the top with trail stats and a really cool state outline icon
- fixed nested-route path issues so thumbnail and hover effects work correctly on state pages
- added a new "Top States" section on the homepage with quick links into the most represented states
April 3, 2026
- update USFS layer ranger district popup card styling
- adjust height of layer selector buttons on desktop view
- normalize trail notice font color (ditched the ugly bright red font)
- fixed some spacing and overflow issues with the weather card
- auto-recalculate map bounds on window resize or rotation
- fix messy table data on window resize
- redesigned finalization page with interactive preview map instead of a static image
- fixed a longstanding issue that was causing trail details to disappear from the preview thumbnails
- misc alignment and sizing improvements
April 2, 2026
- more misc sitewide visual improvements
- built in some admin backend stuff to make data management easier for me
- added a compact list view to the explore page
- re-styled marker popups on mini map
April 1, 2026
- weather alerts are now live and visible in the weather section of the trail details pages
March 28, 2026
- continued visual improvements to home page and trail thumbnail cards
- misc minor sitewide fixes
March 27, 2026
- improved the rating cards on the trail ratings page
- major navbar cleanup for mobile and desktop
- upgrade jQuery to v4.0.0 and jQuery UI to v1.14.2, then patched some deprecated function issues
- refreshed the help page styling, and upgraded the helpful links and mainstream apps sections with structured card layouts and better mobile stacking
- reworked the upload guidance and file requirement popups into cleaner structured lists
- update styling of changelog section on about page
- bump to Mapbox GL JS v3.20.0
- refined the weather card styling
March 26, 2026
- continued improvements to overall theme and sitewide aethetics
March 24, 2026
- removed mini gpx option since there is not much space savings anyway and it confuses people
- new weather section style (WIP) and better data loading from API
- fixed issue with duplicate detection
- added client-side reporting for skipped image reasoning
- theme refresh on several pages, this is still a work in progress
March 22, 2026
- HUGE improvements to loading speed of trail info pages with complete refactoring of expensive calculations and data storage
- subtle but necessary visual improvements (AKA we nuked the ugly orange... yay!)
- miscellaneous small code improvements and fixes, removal of unused things
- destructive endpoint security improvements
December 22, 2025
- fixed some longstanding behavioral issues with the navbar and home/explore page search boxes
December 19, 2025
- replaced CanvasJS with ChartJS for generating elevation profile and water flow charts
August 29, 2025
- fixes for EXIF GPS data not being saved anymore
- initial implementation of pre-processing duplicate detection using SHA1 hash values
- max width on trail thumbnails so they're not so gigantic on large screens
- reduced reverse geolocation API calls to on upload only, fully replaced Positionstack with Mapbox, now storing plain text location data in a JSON array
August 16, 2025
- added a "this time last year" historical water flow average for year-over-year comparison
August 8, 2025
- bump to Mapbox GL JS v3.14.0
- completely removed big spy Google Analytics - your data is safe!!
July 1, 2025
- simplify linestring if large number of coordinate points for better map loading
- remove minZoom setting
April 26, 2025
- bump to Mapbox GL JS v3.11.0
April 20, 2025
- updates and fixes to track step reduction for static map thumbnails
April 16, 2025
- clamped dynamically sized navbar and header font to a more reasonable scale so that it doesn't look ridiculous on ultra wide monitors
- progress on implementing 1/3 arc second DEM as a replacement for the 30 meter SRTM dataset
April 13, 2025
- fixed an issue that prevented the static map thumbnails from properly sizing on ultra wide screens and mobile devices
April 12, 2025
- trying out Umami - a lightweight and much more private analytics platform - Google Analytics is still here but we may remove it because they sell our information
February 23, 2025
- bump to Mapbox GL JS v3.10.0
- hyperlink detection for trail notices
December 13, 2024
- database stats are now updated hourly to reduce database load and index page loading time
- added some info about ice buildup affecting water flow data during the winter months
November 23, 2024
- stopped logging IP addresses of users downloading files, as there really is no good reason for it, and purged ALL previous logged IP addresses
- dropped all remaining instances of "region" from database and web scripts
November 22, 2024
- updates to haversine formula distance calculations
- implemented a "gradient bias" scale to indicate whether the trail is mostly uphill, mostly downhill, or balanced
November 19, 2024
- added a visual indicator for which rating is selected if using the filter
- added an alert if no matches are produced with the rating filter
November 15, 2024
- repurposed the old "resources" page into a new "help" section with info and guides about trails and mapping, app use, etc.
- fixed an issue where dynamic Facebook OG images were not properly generated anymore because of the switch to WEBP trail thumbnails
- renamed "LIST" page to "EXPLORE" to be more adventerous and interesting sounding
- implement Fuse.js for fuzzy trailname searches on both the home and explore pages
- fix special characters in thumbmail attributes breaking fuzzy searching
- de-cluttered some stuff here and there
- hide download buttons if visitor is using Facebook's in-app browser, since it blocks downloads anyway (add note to prompt visitor to launch the page in normal browser)
- justify alignment for text in description, weather and recommendations blocks
November 14, 2024
- bump to Mapbox GL JS v3.8.0
- small improvements to weather forecast retrieval
- tightened the duplicate trail check threshold for start and end points to 500 meters
November 13, 2024
- gallery now showing images in descending order of when they were uploaded (newest first, instead of newest at the end)
- testing out a slight layout change so that a bigger map is displayed when viewed from a PC
- prepending uploaded images to gallery instead of appending (to go along with the above change)
- storing all available EXIF data now for later use
November 5, 2024
- fixed a spelling error on the privacy policy page
September 30, 2024
- fixed an issue where GPX and KML filenames were missing
September 29, 2024
- fixed MIME types for KML and GPX
- using direct content stream for downloads vs saving and serving a temporary file
September 28, 2024
- clicking on start or end coordinates from the trail data table now intelligently selects a map opening method depending on the device (iOS opens Apple Maps, Android opens Google Maps, and desktop opens a new tab to the Google Maps website)
September 27, 2024
- misc improvements to various calculations
September 26, 2024
- now using spatial data and indexing for separate track start and end points
- dropped download count columns since we are using another table for this
- new logic to check for duplicates based on start/end point proximity with existing trails using geospatial inquiries
- converted all thumbnail image files to WebP
September 21, 2024
- framework and testing started for 3DEP 1 Arc Second, 1/3 Arc Second and 1 Meter DEM replacement for SRTM 3 Arc Second data.
September 18, 2024
- added a progress bar for a more visually appealing experience
- fixed some file check logic
- minor improvements to misc JS & PHP code
- added some ADA compliance things
September 14, 2024
- added button near the top that links to the main map and pans/zooms to the trail
- misc improvements to various Javascript code to make map loading more efficient
September 13, 2024
- added a button to display more information about water flow data and how it relates to crossing in an offroad vehicle
September 7, 2024
- fixed an issue preventing ranger district and forest info from showing when USFS layer clicked
- removed a few sorting options that don't make a lot of sense, and also removed those things from the thumbnails
- improved clarity of rating and distance info on thumbnails
September 6, 2024
- added GeoJSON format to download options - GeoJSON files are constructed in compliance with RFC 7946 specifications
- revised the method for tracking number of file downloads and reporting on trail info pages and index stats grid
- implemented sha1 hashing for future duplicate image checks
September 1, 2024
- experimenting with USFS data popups on main map
- added a new layer style called "USFS" which overlays Forest Service Ranger District regions on a satellite basemap
- attached bufferless Ranger District click handler to USFS style only
- fixed a couple small bugs
August 31, 2024
- redesigned the mobile nav menu button to be more visually appealing especially on iOS devices
August 30, 2024
- bump to Mapbox GL JS v3.6.0
- added new "About" page with more visually appealing tech info and changelog
- added reset function to clear rating filter and show all trails again
August 26, 2024
- fixed an issue where uploads would fail if the image contained partial or no GPS exif data
- added buffer to click events to make tapping a specific track much easier on touch devices
- added mouseover highlight styling to tracks
- made rating legend clickable to filter list
August 23, 2024
- upgrade to jQuery 3.7.1
- updated MapBox default map style versions
- themed and fixed positioning of style selector for mobile devices
- added position controls to map
- fixed positioning of fullscreen map to account for iPhone safe area inset
- improvements to point reduction for polyline encoding
August 22, 2024
- fixed issue where graph not displayed properly if historical period min/max flows are both 10 or less (math is hard)
August 21, 2024
- added fun topo background to desktop view of trail info and map
- fixed trail stats table alignment
- darkened the navbar so that it doesn't look so plain at the top of the page
- added a rating color legend
- other misc visual improvements
August 17, 2024
- added an autopopulating quick trail name search box
- MIGRATION TO NEW WEBSITE COMPLETED
- fixed weather icons once again, as they seem to have returned to the API response
- removed South/North region concept
August 15, 2024
- fixed ugly gray search box placeholder text
- fixed sorting
July 14, 2024
- removed weather icons because they're deprecated on the API
June 29, 2024
- introduced historical water flow data graph in place of text data
- switched to fill charts because they look cooler
June 28, 2024
- first rollout of experimental water flow data
- fixed weather icons
- bump to Mapbox GL JS v3.4.0
October 12, 2023
- fixed an error where images would get deleted as soon as they were uploaded due to an issue with Gmail automatically scanning the admin email links
August 5, 2023
- bump to Mapbox GL JS v2.15.0
February 1, 2023
- bump to Mapbox GL JS v2.12.0
September 24, 2022
- image uploader now reads geotag data from images and stores lat/lon in database for later use
September 23, 2022
- weather forecast details now load asynchronously and therefore the page will no longer break if the forecast cannot be loaded
- added weather icons from weather.gov API to extended forecast
September 21, 2022
- updated image uploader with multi-file drag/drop style, removed description/name inputs
September 18, 2022
- bump to Mapbox GL JS v2.10.0
August 21, 2022
- disabled the waypoint add function because no one uses it
July 24, 2022
- bump to Mapbox GL JS v2.9.2
July 10, 2022
- fixed an issue where if the weather forecast did not load from the weather.gov API, many other parts of the page would also fail to load, and cause various backend errors
May 16, 2022
- downloads are now tracked individually by trail ID, time, IP address and file type
May 8, 2022
- additional weather forecast periods are now displayed in a popup window by clicking "MORE" under the first period
May 4, 2022
- trail details page now has weather forecasts for a predefined number of periods, using the National Weather Service API
April 25, 2022
- bump to Mapbox GL JS v2.8.2
April 16, 2022
- added number of US states covered to database stats grid
- added experimental map style changer to toggle map styles on the fly
April 8, 2022
- bump to Mapbox GL JS v2.8.0
April 2, 2022
- added some things to the database stats grid
March 28, 2022
- slight update to hover/click handlers on the main map
- to access the trail details page, the link now appears in the popup when a trail is clicked
March 27, 2022
- original files are now stored again (separately) for diagnostic purposes only
- user is now given the option to choose whether or not to upload the waypoints in their GPX file
- this is useful for those who have "private" locations and don't want to share them
March 25, 2022
- uploaded tracks are now compared with the database and potential duplicates are flagged, giving the uploader a notice to review
- this works by comparing the coordinates at each end of the new trail, with those of all trails in the database
March 24, 2022
- fixed text fitment of trail details at bottom of thumbnail
March 19, 2022
- region and state are now determined at upload for sorting later
- fixed thumbnail preview to match rating color
March 17, 2022
- track color corresponds to difficulty rating, same as thumbnails
March 13, 2022
- new uploader supporting drag/drop & client-side size/extension validation
March 11, 2022
- added sort by region, and region designators on thumbnails
March 9, 2022
- added rating, distance, downloads and views to thumbnails
- changed thumbnail track color convention to a rating scale rather than region
March 7, 2022
- fixed some longstanding formatting issues on various pages
- added a button at the bottom of the list that brings the viewer back to the top of the page
February 6, 2022
- bump to Mapbox GL JS v2.7.0
January 24, 2022
- moved elevation profile graph closer to map
- number format applied to index page stats
- added minified GPX back in as a download option
December 1, 2021
- bump to Mapbox GL JS v2.6.1
- enabled cooperative gestures for trail info page map
- trail waypoints added to KML downloads
July 10, 2021
- added active weather alerts for trail location using weather.gov API [TEMPORARILY REMOVED FOR IMPROVEMENTS]
June 23, 2021
- bump to Mapbox GL JS v2.3.0
May 15, 2021
- bump to Mapbox GL JS v2.2.0
- all GPX downloads are now minified
- added basic KML download option (waypoints not yet included)
March 17, 2021
- added "-mini" to end of filename for minified GPX downloads
March 10, 2021
- added USFS Ranger District vector data, which will soon be query-able so that a user can click inside a district and get more info
March 5, 2021
- some visual updates to map info page
- city, state and county added using Mapbox's geocoder API
February 14, 2021
- bump to Mapbox GL JS v2.1.1
January 27, 2021
- bump to Mapbox GL JS v2.0.1
- added start/end markers to the trail preview image
January 26, 2021
- added some more weather data from openweathermap.org API
- added ratings to trail titles in format "Trail Name | R#"
January 25, 2021
- started support for trail groups, which can hold multiple trails belonging to the same region
- added support for sorting by page views
- improved performance of thumbnail loading by only querying the full track if needed (this seems to have greatly improved the loading speed of the list page)
January 24, 2021
- restructure of statistics section
- added current trailhead temperature, cloud cover and wind speed using the openweathermap.org API
- added ability to sort by name, rating, length, date added and number of downloads
- added ability to toggle sort order between descending and ascending
- added support for tracks that have no elevation data and are outside the scope of the SRTM datasets
January 11, 2021
- fixed an issue where an extra space at the beginning or end of the trail name would result in a hyphen being added in the URL safe name
December 28, 2020
- fixed an issue with the image uploader where images smaller than 1000x1000 pixels get a blank thumbnail
December 19, 2020
- fixed trail name font sizing on index and list pages
December 18, 2020
- added distances to elevation profile graphs on X axis
- added min and max elevations for profile graphs, rounded to whole 100's (makes the graph more interesting)
- added a corresponding location marker to small map when elevation profile line is hovered over
December 10, 2020
- fixed an issue where trails could not be clicked on when map zoomed out
- changed 3D terrain to appear at all zoom levels
- added sun calculations to determine sky atmosphere depending on map location and local time (also updates when map is panned)
December 8, 2020
- trails clustered using centerpoint at zoom level 8 and out for better visibility and searching
- clicking within 50px of part of a trail will still select that trail (easier to click with touch)
- 3D terrain now available starting at zoom level 7 and in
- bump to Mapbox GL JS v2.0.0
December 7, 2020
- sorted out ability to add vector overlays for BLM data (map controls to follow!)
- restricted main map to US bounds to prevent excessive loading of tiles in other countries
- some nicer styling applied to the elevation profile graphs
- added links to weather.gov for trail endpoint locations within their markers on trail info pages
- bump to Mapbox GL JS v1.12.0
December 4, 2020
- dynamically generated opengraph tags for sharing trail info links on social media
- began making provisions for geographical polygon support (defined areas)
- miscellaneous performance tweaks
- elevation profile graphs working using CanvasJS
December 2, 2020
- added some statistics to the trail homepage
- trail thumbnail tracks are now dark orange for northern region and light green for southern region
- placeholder added for trail notices: system under construction for submitting trail closures, weather, restrictions and such
November 27, 2020
- added an option to download a condensed, or "minified" version of a GPX file (smaller file size, but not formatted for human readability)
November 16, 2020
- added ability to upload pictures to a trail info page (supported: jpeg, jpg, png and gif)
October 12, 2020
- new function on trail details page to add a waypoint to that trail
- added lat/lon to end markers on trail info page maps
October 5, 2020
- converted track and waypoint storage to associative arrays and updated all necessary files to support the conversion
- added GPX file download counter
- added unique identifier to download temp files to prevent mid-transfer overwriting
- added support for waypoint descriptions
October 2, 2020
- cleaned up older tracks to round all numbers to proper point precision, add elevations if missing, and delete duplicate points
- added a function to ignore duplicate points in newly uploaded files
- updated trail view page to count location points dynamically and no longer store a fixed number in the database
September 25, 2020
- Better interface for trail details page
- Added ascent and descent calculations to trail details page (no track smoothing, these values may be different than other apps or websites)
September 24, 2020
- New upload interface with trail preview and statistics before finalizing (pre-upload)
- DEM data now automatically added to any points missing elevation
- Ascent and descent calculations added to pre-upload stats
- Search bar added to explore page (search by name)
August 24, 2020
- Added custom dynamic GPX file generation script for downloads
- Added waypoints to trail page map
August 22, 2020
- New landing page, user experience and design improvements, new ratings & resources pages
April 26, 2020
- Added support for uploading GPX files containing a route <rte>, rather than a track <trk>
November 14, 2019
- Waypoints are now extracted and stored for use later
November 4, 2019
- elevation and timetamps are now extracted and stored for use later
November 3, 2019
- All tracks are now placed into regions: Northern Nevada and Southern Nevada. Tonopah-ish is the latitudinal divider
October 28, 2019
- New trail information page when a track is clicked on from the main map
- Changelog started, all work completed before this date is undocumented.