我需要使用OsmSharp实现自定义GPS路由引擎。我正在使用Dykstra路由引擎(在WinForm示例中)。样本计算最短的道路,但我想让U形转弯不可能(例如到达基地时)。
你将如何实现这一目标?我尝试了一些" hacks"在代码中但似乎没有任何效果。
[编辑]
我在这里找到了一些答案元素:https://github.com/OsmSharp/OsmSharp/issues/236
由于
答案 0 :(得分:2)
这取决于。
首先,OSM有turn restrictions,可用于指定禁止转弯( type = restriction + restriction = no_u_turn )。同样,它们仅用于允许特定转弯( restriction = only_right_turn 等)。您的路由引擎必须支持relations才能支持OSM的转弯限制。
其次,您可以单独(或另外)通过避免交叉处的锐角来避免急转弯。理想情况下,这可以通过添加惩罚来实现,这样如果没有其他路由可用,路由器仍将采用此路由。