osmsharp:防止掉头

时间:2015-06-28 09:08:42

标签: c# gps maps openstreetmap

我需要使用OsmSharp实现自定义GPS路由引擎。我正在使用Dykstra路由引擎(在WinForm示例中)。样本计算最短的道路,但我想让U形转弯不可能(例如到达基地时)。

你将如何实现这一目标?我尝试了一些" hacks"在代码中但似乎没有任何效果。

[编辑]

我在这里找到了一些答案元素:https://github.com/OsmSharp/OsmSharp/issues/236

由于

1 个答案:

答案 0 :(得分:2)

这取决于。

首先,OSM有turn restrictions,可用于指定禁止转弯( type = restriction + restriction = no_u_turn )。同样,它们仅用于允许特定转弯( restriction = only_right_turn 等)。您的路由引擎必须支持relations才能支持OSM的转弯限制。

其次,您可以单独(或另外)通过避免交叉处的锐角来避免急转弯。理想情况下,这可以通过添加惩罚来实现,这样如果没有其他路由可用,路由器仍将采用此路由。