如何在 OSRM 中避开特定区域

Hel*_*ium 0 maps osrm

我想使用 OSRM(开源路由机)来查找路线,避开城市的某个区域,由多边形指定,作为一个选项。一种方法是制作两个配置文件:carcar_avoid_no_drive_zone. 后一个配置文件查找每个路段并将长度设置为无穷大,如果它在无驱动区域内

但是这种方法在技术上重复了预处理、磁盘使用和 RAM 使用。这个问题有没有更好的解决方案?

小智 5

通过在限制区域边界的所有 OSM 段上设置 0 速度并仅进行 CH 收缩或 MLD 定制,可以通过“流量更新”来阻止某些区域。这种方法仍然会生成两个图。更多信息在这里https://github.com/Project-OSRM/osrm-backend/wiki/Traffic

另一种方法是使用即将推出的“避免”功能https://github.com/Project-OSRM/osrm-backend/pull/4315,方法是在配置文件中定义“受限区域”类并使用类似avoid=restricted在运行时的查询参数.