www.sherpa-map.com is the passion project of three cyclists who identified a need for greater visibility in the gravel sector. Specifically, we found it challenging to devise routes where the transition from gravel to pavement could be easily identified. While other sites like RideWithGPS and Komoot provide a breakdown of the surface percentages your route currently lies on (a feature we also offer!), they don't display what's coming up next. We aimed to address this by introducing an intuitive 'Show Gravel' button, effectively creating the first gravel map that truly displays what's available in the Open Street Map database.
Our journey didn't stop there. We realized that merely using the Open Street Map database (for those unfamiliar, it's the same database used by all major apps to identify road surface types via member's manual entries) was insufficient. We decided to harness the power of AI classification algorithms and implemented a method that uses satellite imagery to classify the surface type of each road along your journey, even if it's unknown in that database! You can even watch this process in real-time!
Since then, we have been continually adding features, striving to create the most comprehensive routing service imaginable. We have many features still in development, close to being rolled out to you, the cyclists, adventurers, and explorers who also seek to find the road less traveled.
Some of our most notable features include:
The features go on and on. I explore many of them in more depth in the following:
The feature that started it all: a way to visualize the gravel cycling paths available on, around, before, and after your route. You can route onto it if you’d like! Or avoid it if you’re on your 19mm tire time trial bike - the choice is entirely up to you. I'm delighted to provide a clear picture. As demonstrated in the video, press the “Show Gravel” button, which activates a macro that checks the checkbox for “unpaved” and clicks view for you. This action immediately projects all of the manually keyed-in roads with surface types that are neither paved nor unknown for your viewing pleasure!
I present to you the most advanced feature on this site: AI surface classification! I’ve had enough of sites like Strava and Komoot leading me onto a gravel road with my road bike or a long paved section when I’m ready to rip it up with my gravel bike. For far too long, I've dealt with the fact that everyone—and I mean everyone (trust me, I've done the research)—uses the same database, Open Street Map, as the backbone of their road surface types. This database, while fantastic, and one that I certainly use, is the only database that offers road surface types. But these types are manually entered, which leads to the major issue of the vast majority of roads being uncategorized. Now, while it's entirely possible to switch to the satellite view in a cycling routing app, zoom in, and inspect every section of the course manually, is that feasible? Are you going to try that each time? I'm certainly not. This is why I couldn't help myself but to attempt to integrate this ability. Upon accessing the line types and pressing on 'Surface', you are greeted with the 'Define Unknown' option. This allows you to call down the most zoomed-in and up-to-date satellite images I can get my hands on. Then, it uses my AI to classify said surfaces for each point along each road. If you are curious about the nitty-gritty, it employs a complicated algorithm consisting of multiple trained AI classifiers and queries. It first checks if an image even contains a road (trees can be a bit of an issue), then it sees if the classification confidence is high enough. It will try up to three times for each road section, capturing images for random latitude/longitude coordinate points along that road section, as far away from intersections as possible, until it can hopefully reach the confidence criteria.
Weather, one of the biggest influencers of whether you had a great ride today, is an integral feature of our app. After expanding globally, my obvious choice for weather data was the OpenWeatherAPI. I've harnessed its capabilities by enabling the option to poll the weather for every couple of miles along your cycling route, depending on the timeframe you enter and the duration you anticipate. This gives a visual, detailed breakdown of when you might encounter rain, snow, sunshine, clouds, nightfall, and more. It even displays wind as arrows, with their length signifying intensity and their direction indicating the wind's course. You're also provided a point-by-point breakdown of the temperature. All of this information is available in the upper-right menu or in the information tab. Following this development, I found it necessary to include a measure of tailwind percentage. Even though the arrows provide some indication, it can be challenging to determine if you're maximizing your ride or tailwind based on wind intensity and oblique angles. And who doesn't want more tailwind than headwind? So, I meticulously researched and ensured the best algorithm was used, taking into account as many variables as possible to craft the most accurate tailwind statistic. This gives any user of this app the best possible chance to breeze through their chosen course!
While it's fantastic to have all these features for visualizing the perfect cycling route, it's equally great to be able to create that route. With this in mind, I've spent countless hours and made numerous iterations to develop the best possible system for creating waypoints. Users can drag out or click on lines to create additional waypoints, reverse the direction of the route, combine the end and the start, or—my absolute favorite feature—right-click on a waypoint (or create a new one to right-click on) and choose a new beginning or end! This was also one of the driving forces behind the development of this app. Too many times, I've meticulously crafted a long route that is nearly perfect, only to find I've chosen the wrong start or end point (assuming a route that begins and ends at the same location). This has occasionally been devastating, forcing me to clear the entire route and start from scratch at the new location. Integrating this feature into my system was actually quite a bit harder than I anticipated. You may have as many different routing profiles, off-road segments, and such that you want, and still be able to make these manipulations..
Profiles! Many sites limit cyclists to one or two routing profile choices, typically just unpaved and paved. Strava PREMIUM (by the way, my service is free, so take that!) offers a bit more, with paved, unpaved, and max/min elevation, but I offer 28! And more are on the way! We've created a matrix with three options per row, plus a completely manual, freeform option that provides elevation data at the same resolution as if you were on a road. This is notably different from many other cycling routing sites, which either provide truncated elevation data or none when making manual detours. So, that's 27 permutations plus one! These options allow you to define routes maximizing gravel, paved, leisure, racing (which avoids bike paths and residential roads), hills, flats, and so much more
Map layers galore! We initially tried to create our own map layers, but ultimately found Google's maps invaluable. They have an exceptional traffic layer that displays construction sites. This feature solves a common problem faced by users of other routing services, as unexpected construction sites can disrupt well-planned rides. With our service, this isn't a concern. Map layers galore! I must admit, as a group, we tried to create and serve our own map layers. However, in the end, I found myself consistently using Google's maps. They offer a fantastic traffic layer that displays construction zones (I've had multiple rides with perfectly planned routes disrupted by miles of unexpected construction, not visible on any other cycling navigation service). Additionally, Google provides useful layers for bicycling and public transit. Apart from Google, I have also implemented a custom MapBox route that showcases all roads at any zoom level. This feature is particularly helpful in highlighting the whereabouts of enjoyable, winding bike paths. Furthermore, I have included the standard OpenStreetMap and a cycling-specific OpenStreetMap layer.
We have zero income from this site, so it's being hosted locally on a server in our apartment basement. Given this, we have yet to invest in business internet, so we can only host the front end on a standard port. The backend, which provides the routing and other capabilities, is served from port 8443, which is blocked by many corporate VPNs. In short, please try accessing the site without a highly secure VPN where port 8443 is not blocked.
Nope, currently none of these services cost money. In the future, if we have a large number of users using the site, we may consider upgrading our server infrastructure, internet, etc., which might require some form of premium. However, it would always be significantly less expensive than the competition.
While these services are free for you, the user, it absolutely costs us money to fetch weather data and satellite images. Moreover, there is a daily limit on the number of satellite images I can retrieve. Because of this, I have implemented caps on the classifications and weather pulls that users can make on a daily basis. However, if you would like more access, please feel free to contact me. I am happy to adjust the limits on an individual basis if you enjoy using some of these services.
Email: [email protected]