poutnikl / Brouter-profiles

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

traffic_calming nodes not evaluated for cost factor #16

Closed ProBackup-nl closed 5 years ago

ProBackup-nl commented 6 years ago

I do wish to add traffic_calming nodes into the routing, like traffic signs.

A traffic sign is less annoying then a traffic_calming=bump or traffic_calming=dip.

One road can have multiple traffic_calming nodes, each one should add some cost to the route.

poutnikl commented 6 years ago

Do you mean car or bike profiles ?

For the former, I am not sure if I am going to further develop car profile s, as the new built-in car profiles based on kinematic model seem superior to me. So the suggesting should rather go via Brouter Google group.

For the latter, I will see, for bikes it is minimal delay, rather just an annoyance.

Suggest the delay in distance equivalent.

ProBackup-nl commented 6 years ago

For bikes (velomobiles) bumps and (double) dips are more then just an annoyance: a real physical headache.

And riding 15 or 30 instead of 53 km/hour is more then a minimal delay for a road that has a bump every 800 meters. I am not even up to speed before the next bump is reached.

Could you give me an example on how/where to start, to add a cost for traffic_calming=bump nodes?

poutnikl commented 6 years ago

Hm, but for velomobile it would be better to use the ones from http://brouter.de/brouter/profiles2/ ( not sure if present only on the server, or included to BRouter app as well)

You can then add the traffic calming modification there. As inspiration, see the initialcost settings in my Trekking template:

assign initialcost =
        add ( if highway=traffic_signals then 120 
              else if highway=stop  then 60 
              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 initial_cost_node )
            if bikeaccess then 0  else ( if footaccess then 100 else 1000000 )

You can insert something like

assign initialcost =
        add ( if highway=traffic_signals then 120 
              else if highway=stop  then 60 
              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 traffic_calming=bump then 300
              else if traffic_calming=dip then 300
              else initial_cost_node )
            if bikeaccess then 0  else ( if footaccess then 100 else 1000000 )

See the BRouter profile available values ( always just the first string, with meaning of any of them ) The number is DE region occurance number,

traffic_calming;0000045987 bump bump;choker
traffic_calming;0000040022 hump hump;choker
traffic_calming;0000012499 table table;choker
traffic_calming;0000006808 yes *
traffic_calming;0000005754 cushion cushion;choker
traffic_calming;0000005466 choker choker;cushion choker;hump choker;table choker;bump
traffic_calming;0000005305 island
traffic_calming;0000004686 chicane
traffic_calming;0000004032 rumble_strip
traffic_calming;0000000847 speed_bump
traffic_calming;0000000186 dip