c# - osmsharp : prevent u-turn

标签 c# gps maps openstreetmap

我需要使用 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/

相关文章:

android - 我必须用 GoogleApiClient 替换 Android LocationClient 吗?

c# - Xamarin Mono ClientWebSocket 实现不适用于安全套接字

android - 如何解决获取纬度或GPS时的空指针异常?

mobile - WiFi接入点的位置可以用以下数据进行三角测量吗?

click - Openlayers如何处理 map onclick和同时绘制问题

javascript - 使用谷歌地图绘制不规则同心圆

C#引用参数用法

c# - LINQ 函数中可空类型的问题

c# - 反序列化 XML 文件而不将其全部加载到内存中

java - requestLocationUpdates 抛出错误