使用手册 - 寻路启发器功能
1.寻路启发器作用
在实际现场业务中,我们往往需要对”哪种车可以走哪条路“进行限定,或者自定义寻路的规则,此时就需要用到寻路启发器。
2.如何定义一个启发器
可以参考以下代码
public class BYDBcHeuristics : HeuristicsContainer
{
[HeuristicDef]
public bool BYDCarShouldGo(SegmentPlan.SearchStat stat)
{
if (plan.usingCar.fields.ContainsKey("A"))
{
if (stat.previousTrack.fields.ContainsKey("noAllowA")) return false;
return true;
}
if (plan.usingCar.fields.ContainsKey("BC"))
{
if (stat.previousTrack.fields.ContainsKey("noAllowBC")) return false;
return true;
}
return true;
}
}
首先创建一个继承HeuristicsContainer的类,定义一个返回值为bool的方法。在方法中编写寻路逻辑,当return false时代表不可选择这条路。
如上代码表示,如果小车标记了A字段,那么不可以行走在标记了noAllowA的路上,如果小车标记了BC字段,则不可行走在标记了noAllowBC的路上。