Announcement

Collapse
No announcement yet.

Inability of software (RideWithGps) to route over OSM rivers with no bridges

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Inability of software (RideWithGps) to route over OSM rivers with no bridges

    Hi TrailBoss (or anyone else familiar with the intricacies of OSM) ,


    Recently (sometime in the last couple months) RideWithGps has started refusing to route across a river if no bridge is present in OSM.

    For example, following the Van Hoevenberg trail from the Loj it will route over multiple bridges until it gets to Phelps Brook at the end of the low water route. Here it refuses to cross the brook because no bridge is indicated in OSM.

    This has become frustrating enough that I am considering abandoning RideWithGps as my routing software and looking for something else.

    However, before I do I thought I would check to confirm that it is a bug rather than a feature.

    Is it possible that RideWithGPS is behaving properly and that the rivers need to be somehow marked as "passable" in OSM?

    I tried with BRouter and it navigated across the Phelps Brook where no bridge is indicated. But that doesn't necessarily mean that BRouter is routing "properly" and RideWithGps is not ...

    RideWithGPS (like BRouter) was developed for cycling but I do have "optimize for walking" selected as I attempt to route across the rivers.


    Thanks for your time,
    AP
    Last edited by AvalanchePass; 07-27-2017, 09:54 AM.

  • #2
    I usually just switch to 'draw lines', draw over the bridge or river or whatever, then switch back to 'follow roads' or whatever the setting is.

    Comment


    • #3
      Yes, that's what I've been doing but it gets annoying in remote areas where there either aren't bridges or they haven't been added to OSM.

      You're using RideWithGps? Did you find that this "feature" manifested itself recently?

      Thanks,
      AP

      Comment


      • #4
        I may have an idea of why this is happening. Grab a drink 'cuz this is a bit long.

        First, routing engines are not usually "visible" to anyone. They quietly do their job in the background, usually as part of some other app or service. For example, when Google Maps draw a route from point A to B, you probably don't think of what kind of routing engine they use other than it's probably proprietary to Google.

        OpenStreetMap is an open system and so there are several routing engines that have been created to work with it. The two most common ones I'm aware of are:
        1. BRouter
        2. Graphhopper


        The two engines are supposed to read the data found in OpenStreetMap and use it to calculate a route from point A to point B. If someone entered incomplete, incorrect, or malformed map data, then the engine can't do its job correctly.

        A simple example of a mistake would be drawing a T-junction of two roads but failing to actually connect the roads. If you zoomed in you'd see there's actually a gap. The engine wouldn't be able to route through the intersection.

        There's another way to make a mistake but it falls on the routing engine's shoulders. Let's say that T-junction is drawn perfectly. However, your engine requires that intersections be labeled with a tag like "junction=tee". Without that label, your engine doesn't know how to route through it. OpenStreetMap's documentation does not require anyone to add this kind of tag to a road intersection, but your router needs it. You can see how this unique requirement can cause problems.

        OK, here's the deal. If RideWithGPS is using the Graphhopper routing engine, the problem you're experiencing is due to something unique Graphhopper requires. It goes like this:

        In OpenStreetMap, when a road or trail crosses a waterway, it is necessary to indicate how the hell that road is getting through the water. Is there a culvert under the road? Is there a bridge over the water? Or do you have to ford the waterway? Meaning you either have to drive or walk through the water. If this is the case, a map editor (like me) labels the crossing with a "ford=yes" tag. That's it, that's all.

        BRouter understands this and happily routes through the crossing. Graphhopper is pickier. It demands to see another tag, one that is not required by OpenStreetMap's documentation. For a foot trail, it also wants to see "foot=yes". Without that additional tag, it won't route across the brook!


        You can test my theory and determine if, in fact, RideWithGPS is using Graphhopper. Try to route along the Phelps Trail where it crosses Johns Brook.

        OpenStreetMap is a map of the world, created by people like you and free to use under an open license.


        This crossing *should* work with Graphhopper because another map editor added the "foot=yes" tag to this crossing (and two others along the Phelps Trail) before I politely asked them to stop.

        The issue is that there are about 200000 "fords" worldwide in OSM and only a small handful have the additional tag needed exclusively by Graphhopper. In other words, it's not an accepted OSM standard and the developers of Graphhopper need to sort this out with OSM before imposing new ways of doing things.
        Looking for views!

        Comment


        • #5
          Thanks for the detailed response.

          It appears that RideWithGps does indeed use GraphHopper, at least as of April 2015.

          I attempted to test routing over Phelps Trail where it crosses Johns Brook but was unable to do so because of another issue in RideWithGps that surfaced around the same time.

          RideWithGps is refusing to route along certain stretches of OSM trails. It will navigate along the Phelps Trail from The Garden but only as far as Bear Brook. Even if you draw a manual line across the brook it won't follow the trail any further.

          For example, if you start at the intersection of the Phelps Trail and the Deer Brook Lean-to, RideWithGps will not route along the trail in either direction.

          The Phelps Trail does not become navigable again until the final crossing of Johns Brook before the State Range Trail cutoff.

          As one would suspect, BRouter navigates along the entire section of trail.

          Graphhopper's dependence on the "foot=yes" tag explains why it won't cross the water. But it's strange that it won't even route along the trail between the crossings?

          AP

          Comment


          • #6
            I used http://graphhopper.com/maps to successfully plot a route from "Garden Parking Area" to "Mount Marcy". It worked because every ford along the way has the extra "foot=yes" tag. If it doesn't work in RideWithGPS then they've introduced some other issue I don't know about.

            When I tried to route from "Marcy Dam" to "Indian Falls" it failed to create a short direct route between the two (because of the ford through Phelps Brook that lacks "foot=yes"). Instead, it routed in the opposite direction, took the Loj road to the highway, followed the highway all the way to the Garden, took the Phelps trail to Marcy, bla, bla, you get the idea. It went all the way around the world avoiding every possible ford that lacked the special "foot=yes" tag! Their need for the extra tag effectively makes their product unusable. I truly don't understand this design decision!

            BTW, this is not a recent issue in Graphhopper. Here's a discussion dating back as far back as 2014 regarding how it fails to route through fords. Others mentioned it should do so by default.

            Seeing that the developers haven't capitulated to the demands for over 2 years, it seems unlikely they'll ever make it work like BRouter. Effectively, they've dug in their heels and are expecting map editors to modify all fords throughout OSM to comply with Graphhopper. What a pain!
            Looking for views!

            Comment


            • #7
              Thanks again.

              Interesting that Graphhopper will route across Bear Brook (Phelps Trail from Garden before lean-to) but RideWithGps will not. So either they no longer use Graphhopper or they don't have current OSM data with the "foot=yes" tag.

              Extensive list of routing engines here, perhaps they're now using one of those:
              http://wiki.openstreetmap.org/wiki/R...online_routers

              I played around a bit with the BRouter web client.

              RideWithGps features I miss so far:
              • Inability to manually route off trail (I'm trying to navigate via the Great Slide rather than the Bouqet Forks Trail)
              • Google Maps layer (not so much an Adirondacks issue but up here Google has trails that OSM does not)
              • Google Street View integration (to find trail heads and parking)
              • Option to switch to imperial measurements
              • Ability to add POI's


              List of OSM routing software here but it doesn't indicate which routing engine each is using:


              Perhaps I should experiment with routing directly on the smart phone using Locus?

              AP

              Comment


              • #8
                As you've discovered, the BRouter and Graphhopper web-clients are just for demonstrating the abilities of the routing engine and not much more.

                Typically, the engines are accessed by other apps via an online connection. They are also available in offline mode if you install the engines on your phone.

                By default, Locus Map (Pro) can use several online routing engines (MapQuest, YOURS, OSRM, BRouter, Graphhopper). It can optionally use one of two offline engines (BRouter, Graphhopper).



                FWIW, its integration with the offline version of BRouter is better than with Graphhopper.

                The only routing I do is typically with the BRouter web-client just to determine the distance and ascent of a desired route. In fact, I usually do it just to post stats to answer questions from fellow forum members.

                I haven't explored Locus Map's routing abilities more than a handful of times so I'm not much of an expert in that area. I know there's supposed to be a way of creating instructions for the routing engine like "use this road" and "don't use this road" in order to force its hand when it calculates a route. However, I don't know (and doubt) you can force it to run through an area that has no existing routable way (i.e. no trail or road, like straight up the Great Slide). Perhaps you let the engine do its thing and then edit the track and move trail segments to where you want them to be. You'll have to explore that feature and share your results.

                BTW, in Locus Map there's a difference between Navigation and Guidance. Navigation is for guiding you along existing roads and trails. Guidance is for guiding you along a route that is off-road/off-trail (like in bushwhacking). I'm wondering if you manually edit a route to run up the Great Slide whether Navigation mode will understand how to handle that afterwards. Let me know if it works!

                When you pause to think about it, these are incredibly powerful tools that, a mere decade ago, one couldn't imagine having on ... a phone!


                PS
                You may want to bring up the routing problem with RideWithGPS. At a bare minimum it should be able to route the length of the Phelps Trail. The fords were modified 2 months ago, so if RideWithGPS is used cached data, it's more than 2 months old ... which seems kind of stale. I'd be surprised if they used stale data for routing purposes.
                Looking for views!

                Comment


                • #9
                  Yes, something going on with RideWithGps.

                  Graphhopper will follow the trail to Cascade over Cascade Brook but gets stopped by the second crossing where no bridge is indicated. But if you start after the second crossing it will follow the trail right to the summit.

                  RideWithGps also won't route through the crossing without the bridge. However, it also refuses to navigate to the summit if you start beyond that crossing. Perhaps it considers any trail segment not "attached" to a trail head to be un-routable? I opened a ticket.

                  In the meantime, I found a way to route off trail fairly easily. I routed the Macomb, South Dix, Grace southbound traverse using the BRouter web client. Skipped Grace entirely. Exported and then imported into RideWithGps.

                  In RideWithGps I inserted one control point where you exit Boquet Forks Trail for the Great Slide and inserted another one at the junction with the Grace Peak Trail. Then using the "Draw Lines" functionality I was able to drag the section of trail between my two control points so that the route now goes up the slide to the lookout and follows the Grace Peak trail from there.

                  Result is here.

                  Haven't had a chance to play with the routing in Locus Map yet.

                  I'll post if I get a response from RideWithGps.

                  AP
                  Last edited by AvalanchePass; 07-27-2017, 09:59 AM.

                  Comment


                  • #10
                    Good news! I discovered how to get Graphhopper to route through fords (that don't have the extra "foot=yes" tag).

                    The change was made this year in May. You have to instruct the router that the intended method of travel is "hiking".

                    In Graphhopper's web-client, the first three icons are "Car (Driving)", "Person (Walking)", and "Bicycle (Road biking)". Click the ellipsis and many more icons appear including "Person with backpack and walking stick (Hiking)".

                    Using "Hiking" as the activity, I set the start point to "Marcy Dam" and the end point to "Mount Marcy" and it instantly created a route following the Van Hoevenberg Trail, right through the two fords (Phelps Brook and Marcy Brook).



                    Now the trick is to make RideWithGPS use Graphhopper's "hiking" activity. Good luck!


                    PS
                    I looked at the route you created in RideWithGPS. First, it always makes me smile when I see all the work I put into OpenStreetMap appear in so many different places. When I drew the Great Slide and Zipper Slide (tracing Bing's satellite view) I never thought someone would use it to create a route. Very cool!

                    The upper portion of the slide is wooded and is dotted with islands of bare rock. When ascending you can probably "connect the dots" in many different ways. I've only been there twice but I found there are herd-paths that connect specific "islands".

                    See where your route swings from the left (climber's left) to the right side of the slide? Then quickly swings back to the left? I found it was easier to follow the herd-path that runs along the left (more or less), instead of trying to push through the thick stuff to gain access to the bare patch on the right. Maybe if you were already hugging the right side of the slide but when you have to swing over, like your route, you may discover a lack of herd-path.

                    Pics of the upper end of the Great Slide:






                    Last edited by Trail Boss; 07-27-2017, 09:08 AM.
                    Looking for views!

                    Comment


                    • #11
                      Nice!

                      I too was using the "Walking" functionality in Graphhopper as well not realizing there has a "Hiking" option. I can confirm that Graphhopper routes to the Cascade summit from the trail head with "Hiking" selected as the mode of travel.

                      This makes me much more optimistic that my ticket with RideWithGps may have a positive resolution. There have a "Walking" optimization so if they map it to the "Hiking" activity in Graphhopper things may just work.

                      May of this year sounds about right for when RideWithGps started acting up ...
                      Last edited by AvalanchePass; 07-27-2017, 09:40 AM.

                      Comment


                      • #12
                        I edited the route up the slide. I seem to recall the "stay left" advice from a trip report or two as well. Of course, once we're there navigation will be "by feel" as we "connect the dots".

                        I'm sure you have no idea how often the OSM data is proving helpful to people.

                        Here's a trivial example. Last September we hiked the Brothers and Big Slide, returning via Slide Mountain Brook and the Southside Trail. While we were prepared to poop in the woods, there was one member of our party who really wanted to avoid it. So I was a hero when I knew (from advance preparation studying OSM) that there was an outhouse a few minutes up Phelps Trail across from the Howard Lean-to.

                        Our hike was just after you had added locations for the Three Brothers to OSM. The trail was crowded that day, I think it was one of the large Quebec groups. As the masses congratulated themselves on one of the early lookouts for having reached the First Brother, I appeared very wise to my companions when I informed them that the First Brother was still a ways off.

                        Comment


                        • #13
                          Sounds like all RideWithGPS needs to do is offer GraphHopper's "Hiking" option and you're back in business.

                          BTW, here's Bing's satellite view of the Great Slide. You can see the left side has more of a natural "herd path" feel to it.
                          Map multiple locations, get transit/walking/driving directions, view live traffic conditions, plan trips, view satellite, aerial and street side imagery. Do more with Bing Maps.
                          Looking for views!

                          Comment


                          • #14
                            Originally posted by AvalanchePass View Post
                            ... there was one member of our party who really wanted to avoid it. So I was a hero when I knew (from advance preparation studying OSM) that there was an outhouse a few minutes up Phelps Trail across from the Howard Lean-to.
                            Now that genuinely made me laugh out loud!

                            BTW, if you're using Locus Map, you can use its "Nearest Points" feature which lists all nearby Points of Interest (and for person having to "go", the privy was of great interest) from your current position (also lists direction and straight-line distance).
                            Looking for views!

                            Comment


                            • #15
                              Originally posted by Trail Boss View Post
                              BTW, if you're using Locus Map, you can use its "Nearest Points" feature which lists all nearby Points of Interest (and for person having to "go", the privy was of great interest) from your current position (also lists direction and straight-line distance).
                              Thanks.

                              The Big Slide hike was before I was using GPS.

                              AP


                              P.S. I added a link to this thread to the RideWithGps ticket

                              Comment

                              Working...
                              X