poutnikl / Brouter-profiles

My profiles for Brouter offline routing on Android platform
76 stars 17 forks source link

Add penalty for railway crossings?! #28

Open sjakobi opened 1 year ago

sjakobi commented 1 year ago

When cycling, I usually try to avoid level railway crossings because they are sometimes closed for 5 minutes or more. This can be encoded in a bike profile like this:

@@ -556,6 +556,7 @@ assign initialcost =
               else if and highway=crossing bicycle=no then 60 
               else if and highway=crossing crossing=no then 300 # workaround affecting road routing
               else if ( ford=yes ) then ford_initialcost_node
+              else if ( railway=crossing|level_crossing ) then 300
               else initial_cost_node )

Would this be a good addition to the generated profiles / the profile templates?

poutnikl commented 1 year ago

5 minutes long traffic break means that if you arrive at random time, it lasts in average 2.5 minutes.

The balanced penalty 300 m means roughly 1 minute, what would mean the road is in average 5 minutes closed and 7.5 minutes open.

This seems to me very pessimistic case. In my experience closure is often 1 minute, seldom more than 2 minutes, and the intervals between closures much longer.

I assume particular cases are very variable and I do not then see much sense to insert some generally deployed fixed penalty.

I may consider to implement optional and customizable penalty, fitting local circumstances and user preference.

sjakobi commented 1 year ago

Thanks for your quick response! :)

I agree that the likelihood of a closed crossing and the typical waiting time will vary a lot between different railway lines. A configurable penalty with a low default, e.g. 10, makes sense to me.