navit-gps / navit

The open source (GPL v2) turn-by-turn navigation software for many OS
http://www.navit-project.org
Other
556 stars 175 forks source link

Adding new type of vehicle profile: ski #759

Open lains opened 5 years ago

lains commented 5 years ago

I was recently struggling with a map of a resort to find the quickest way to get home before ski-lifts close. I have seen that openstreetmap has all info about ski-lifts and ski slopes (including difficulty). Maybe this could be of interest to others, and navit is probably well positioned to implement this type of features. Please react with +1 if you're interested in this feature.

mvglasow commented 5 years ago

Absolutely—in fact I have been thinking about this before, just never got around to working on it. There may be a few points to consider:

About the closure point—I have long (even before I learned about Navit) wanted a way to reject a maneuver (i.e. telling Navit “don’t do that right turn”), which could be implemented by adding a traffic distortion for the way immediately after the maneuver, marking it as closed. Maybe we could use that approach for lift and piste closures: when told do take a piste or lift that is closed, reject the maneuver, marking that lift or stretch of piste as closed. (Long-term goal would be to be able to share such information with others.) This should be accessible from the main navigation screen, ideally also from the route description (look at the route in advance and report items as closed).

Fun challenge: some roads are pistes in winter, which is expressed in OSM by double-tagging the same way. If the traffic module has a closure report for the road (which is likely), we need to ensure it does not affect skiers.

Another point about closures: sometimes lifts are temporarily closed to skiers but open to pedestrians. Maybe we do need access flags for skiers after all. Or maybe this is not a real issue, as closure of a lift to skiers usually also implies closure of pistes leading to and from it.

hoehnp commented 5 years ago

In this scope, I wonder if we should also consider enhancing our pedestrian profile to include public transport. In my opinion this seems pretty similar to sking.

mvglasow commented 5 years ago

That has a fundamental distinction from lifts, though: most lifts allow continuous boarding (escalator-style); at the most, aerial tramways or funiculars allow boarding only every few minutes (equal to the duration of a one-way trip, think of a longer-running elevator). Therefore, timetables are not a concern here; at most, operating hours are.

That is different with public transportation: during off-peak hours, you may have to wait some 20 minutes or more for the next train to arrive. If it takes less than that to walk the same distance, the arrival time of the next train is the main deciding factor for your choice of route. As far as I know this is the main reason why this has been regarded out of scope up until now.

Technically, public transportation is more akin to ferry routing—which we do support, albeit poorly (“go straight”—*splash*).

My suggestion would be to keep public transport routing separate, but keep it in mind as a future use case when we implement new logic that might be used by both.

hoehnp commented 5 years ago

Even escalator-style lifts can have non-deterministic delays due to queues. ;-) But in general I agree. My point was rather as you mentioned last, that one should keep it in mind, if new use-cases could also cover this one.