Git Product home page Git Product logo

trailtuner's Introduction

Itinerary Planning Tool

Competitive reservation systems and limited overnight options can be a headache when planning a trip. The Itinerary Planning Tool is designed for assisting the planning of multi-day backpacking, trail running, and/or bikepacking routes with restricted camping (i.e. parks where dispersed camping is prohibited). Whether you know exactly where you want to start, finish, and how many miles you are comfortable hiking each day, or if you want to generate a random itinerary for a short weekend, this app is here to help!

How To Use

Laurel Highlands Hiking Trail (my hometown stomping grounds) is the trail selected by default, however this can easily be changed by clicking on the change button next to the trail name. From here, select a trail from the dropdown list or upload your own GeoJSON file.

The Start and End Trailheads are where you will start and end your hike. A trailhead indicates that there is road access or some other means of arriving. Typically, a trailhead offers parking and is the perfect location to plan a shuttle drop-off.

The more information you provide the tool, the better your results will be. However, if you don't know (or care) about a specific field, feel free to leave it blank. For the Start and End Trailheads, this can be done by selecting No Preference at the top of the list. For Miles and Miles / Day, this is done by setting the number to "0". To use the app, simply fill out as many of the four aforementioned fields as you choose, then optionally select the Start Date, Short hike-in, or Short hike-out checkboxes.

Intuitively, the Days input is how many days you want to plan for your trip and the Miles / Day input is how many miles you prefer to cover each day. If Days is set, the resulting itinerary will always match. However, due to the unpredictable and irregular spacing of campsites, Miles / Day is typically used as a guideline to select each day and it will rarely align exactly. Rest assured, the generated itinerary will be as close to the provided number as statisically possible.

Are you planning on the first day being a Short hike-in? Check this box to force the app to select the nearest campsite to the starting trailhead for the first night. This is useful if you are starting your trip on a Friday after work and want to include an extra night of camping, but aren't planning a full day of hiking. Keep in mind, this does not add a half day to the number of Days, rather it is included in the total.

When you are done, click Generate Route to view the itinerary on a table, leaflet map, and 2D elevation profile. You can modify each night's campsite by selecting a closer/further site in the table. When satisfied with the route, you can Share Route or Export GeoJSON. This web app does not currently support saving a route, so it is important to share or export any route you want to use later. The exported GeoJSON can be uploaded to a GPS device or input to a GPS editor like CalTopo.

How It Works

Depending on the supplied input, a variety of algorithms are used to generate the itinerary. To generate a route for a certain number of days, the app looks at the daily mileage of all possibilities and calculates the standard deviation of each. That is to say, it prioritizes the route with the most consistent daily mileage. So, at least from a purely mileage perspective, the optimal route is planned every time.

When fields are missing, the app does its best to fill in the gaps. Typically, this is done by finding all of the reasonable options, then selecting one at random. If you generate multiple routes with No Preference on the trailheads, you will likely see different outputs each time.

Essential to the application's function is a list of trails in GeoJSON format with a few specificed folders of feature objects denoting the full Trail, all Trailheads, and all Campsites. Right now, this input is simply stored in the trails.js file.

trailtuner's People

Contributors

amccafferty42 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.