organicmaps / organicmaps

🍃 Organic Maps is a free Android & iOS offline maps app for travelers, tourists, hikers, and cyclists. It uses crowd-sourced OpenStreetMap data and is developed with love by MapsWithMe (MapsMe) founders and our community. No ads, no tracking, no data collection, no crapware. Please donate to support the development!
https://organicmaps.app
Apache License 2.0
9.5k stars 913 forks source link

Routing on the major road network without downloading detailed intermediate areas #8569

Open Atemu opened 2 months ago

Atemu commented 2 months ago

⚠ Have you searched for similar, already existing issues?

I have but this is hard to search for.

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. For example: I'm always frustrated when [...]

When navigating at longer distances, one must have all intermediate places downloaded in full detail. The UX here is decent as the app offers you to download all of them with the click of a button but it shouldn't be required as you typically merely pass through these areas without caring what's in them. You usually only care about being routed along the major roads in these locations, not any information about cities or even streets.

Describe the ideal solution A clear and concise description of what you want to see in Organic Maps.

Ideally, one could merely download the "macro" road network of major roads, highways etc. to be used for the purposes of routing. This would probably make sense to offer at country or state granularity.

Describe alternatives you have considered

It may also be useful to have the areas directly attached to major roads such as gas stations, EV chargers, service areas etc. that aren't directly required for routing but useful to have on the way. These could be offered for download after the route is calculated (though ideally non-intrusively) but things like POIs of gas stations and EV chargers could also be part of this "macro" road network as they are typically relevant for long-distance routing.

Additional context Add any other context or screenshots about the feature request here.

I don't know how the routing algorithm works but this could potentially increase routing performance as streets would not be present in intermediate areas and therefore never considered as a potential route.

Jean-BaptisteC commented 2 months ago

IMO, use case is too specific. Develop a new generator require a lot of work What can we do, if routing failed because major roads is closed for example? Maps files is not enough tiny for you to be downloaded on your device?

Atemu commented 2 months ago

IMO, use case is too specific.

I don't really see how this is too specific; long-distance travel should be a rather common use-case.

Develop a new generator require a lot of work

If this isn't easy to solve, it should be low priority. It's more of a UX enhancement than a big step forward.

What can we do, if routing failed because major roads is closed for example?

Divert to a different route. Perhaps I wasn't too clear but I'd also consider roads significant enough to divert a major roads to significant enough to be included in this set. Certainly if the diversion is present for any longer than a few days.

Otherwise, what happens when no route can be found between two places in regular routing? I assume that's special cased already?

Maps files is not enough tiny for you to be downloaded on your device?

Map files are quite large in Android terms. Admittedly not as much of a problem on modern mid- to high-end devices but many people don't have that luxury. Even today there are devices sold that only have a few dozen of GiB of usable space and even just a few not too long routes are over 1GB. I'd expect a more complete set of tiles along major roads to double or triple that, depending on your use-cases. That's quite a lot when most other programs are 1-2 orders of magnitude smaller.

Even on higher end devices it's an annoyance as all of those maps need to be re-downloaded every month or so. Many people have draconian data caps imposed onto them where every GiB counts, even in otherwise developed countries (looking at you, USA).

muralito commented 2 months ago

It's not only a matter of storage space, transfer costs, or number of maps. "Routing on the major road network" (aka "Contraction hierarchies") will also bring great improvements in the time spent calculating long distance routes (as a lot of the work was already done when contracting the hierarchies).

muralito commented 2 months ago

IMO, use case is too specific.

I don't really see how this is too specific; long-distance travel should be a rather common use-case.

It's a very common use case for me. And is a PITA sometimes have to wait several minutes to get the route. Now I just use a workaround calculating the route in the desktop and then using OM with some bookmarks in the middle (gas stations, service areas, hotels), and routing from bookmark to bookmark.

Develop a new generator require a lot of work

If this isn't easy to solve, it should be low priority. It's more of a UX enhancement than a big step forward.

Yes, it doesn't sound easy. It wouldn't be an UX improvement, but a routing core big improvement or redesign.