Mountain Finder

27 Oct 2023

3 min read

Mountain Finder aims to address the question of which mountains are reachable within a certain travel time/distance from the starting point.

It is still a work in progress, with new features being added gradually as time permits. I am using it as an opportunity to learn more about mapping libraries, geospatial datasets, and efficient querying methods to ensure I remain within my free tier limits!

Tech Stack

This site is built on SvelteKit using TypeScript, Tailwind, and MapLibre, deployed to Vercel with data stored within CockroachDB.

The hill/mountain data was obtained from the Database of British and Irish hills (DoBIH), which was established in 1999 and makes its collected data available under the Creative Commons Attribution 4.0 International License.

The main feature of this application is the use of isochrones. Isochrones enable the calculation of mountains reachable within a specified travel time from a starting point. They are calculated using the OpenRouteService and support multiple modes of transport (though unfortunately not public transport).

Future Plans

There are several key features that I plan to integrate, which will greatly enhance the usability of the project:

Limitations

As with any project, there are certain limitations, and this project is no different.

Mountain peaks are not generally starting points for hikes

This presents a fundamental challenge. I believe it can be addressed by keeping logs of the starting points of walks over time, which could also serve as an incentive to explore lesser-known peaks. Eventually, this could evolve into a crowdsourced dataset.

Isochrones are computationally expensive

While the hosted version of the OpenRouteService API offers generous limits for the isochrone API, the calculation is resource-intensive. They restrict requests to either 60 minutes (for cars) or 120 km, and although detailed instructions on hosting your own instance are provided, this is currently beyond my resources. Nonetheless, exploring this option could enable faster isochrone calculations for greater distances/times in the future.