2015-06-28 67 views
2

我需要使用OsmSharp實現自定義GPS路由引擎。我正在使用Dykstra路由引擎(在WinForm示例中)。樣本計算最短的道路,但我想做U型轉彎是不可能的(例如,當到達基地位置時)。osmsharp:防止掉頭

你會怎麼做到這一點?我在代碼中嘗試了一些「黑客」,但似乎沒有任何工作。

[編輯]

我發現這裏的答案的一些元素:https://github.com/OsmSharp/OsmSharp/issues/236

感謝

回答

2

那要看情況。

首先,OSM具有turn restrictions其可以用於指定該U形轉彎禁止(類型=限制 + 限制= no_u_turn)。類似地,它們僅用於允許某些轉彎(限制= only_right_turn等等)。您的路由引擎必須支持relations才能支持OSM的轉彎限制。其次,您可以單獨(或另外)通過避免連接處銳角來避免急轉彎。理想情況下,通過增加懲罰來完成此操作,以便在沒有其他路由可用的情況下路由器仍然採用此路由。