C# osmsharp:防止掉头

C# osmsharp:防止掉头,c#,gps,maps,openstreetmap,C#,Gps,Maps,Openstreetmap,我需要用OsmSharp实现一个定制的GPS路由引擎。我正在使用Dykstra路由引擎(在WinForm示例中)。该示例计算最短的道路,但我希望使u形转弯不可能(例如,当到达基准位置时) 你将如何做到这一点?我在代码中尝试了一些“破解”,但似乎没有任何效果 [编辑] 我在这里找到了一些答案: 谢谢那要看情况而定 首先,OSM具有可用于指定禁止掉头的功能(类型=限制+限制=禁止掉头)。类似地,它们只允许某些转弯(限制=仅右转弯,依此类推)。为了支持OSM的回合限制,您的路由引擎必须支持 第二,你可

我需要用OsmSharp实现一个定制的GPS路由引擎。我正在使用Dykstra路由引擎(在WinForm示例中)。该示例计算最短的道路,但我希望使u形转弯不可能(例如,当到达基准位置时)

你将如何做到这一点?我在代码中尝试了一些“破解”,但似乎没有任何效果

[编辑]

我在这里找到了一些答案:

谢谢

那要看情况而定

首先,OSM具有可用于指定禁止掉头的功能(类型=限制+限制=禁止掉头)。类似地,它们只允许某些转弯(限制=仅右转弯,依此类推)。为了支持OSM的回合限制,您的路由引擎必须支持

第二,你可以单独(或另外)通过避免交叉口的锐角来避免急转弯。理想的做法是增加一个惩罚,这样在没有其他路由可用的情况下,路由器仍将采用该路由