我需要使用 OsmSharp 实现自定义 GPS 路由引擎。我正在使用 Dykstra 路由引擎(在 WinForm 示例中)。该示例计算最短的道路,但我想让不可能掉头(例如,当到达基准位置时)。
您将如何实现这一目标?我在代码中尝试了一些“黑客”,但似乎没有任何效果。
[编辑]
我在这里找到了一些答案:https://github.com/OsmSharp/OsmSharp/issues/236
谢谢
最佳答案
这要看情况。
首先,OSM有turn restrictions可用于指定禁止掉头 (type=restriction + restriction=no_u_turn)。同样,它们用于仅允许某些转弯(restriction=only_right_turn 等)。您的路由引擎必须支持 relations以支持OSM的回合限制。
其次,您可以单独(或另外)通过避免路口处的锐角来尝试避免急转弯。理想情况下,这是通过添加惩罚来完成的,以便在没有其他路由可用的情况下路由器仍将采用该路由。
关于c# - osmsharp : prevent u-turn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31097921/