#
Junjie
2 天以前 299e745032a32db6395935ac751c0d3f7be292bf
src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -231,9 +231,47 @@
        return findTargetLocation(endPath);
    }
    public String calcFirstLocation(String startPoint, String endPoint, List<NavigationMapType> mapTypes, List<int[]> shuttlePoints, List<int[]> whites, int firstPathNumber) {
        //计算路径
        List<NavigateNode> navigateNodes = calc(startPoint, endPoint, mapTypes, shuttlePoints, whites);
        if (navigateNodes == null) {
            News.error("{} dash {} can't find navigate path!", startPoint, endPoint);
            return null;
        }
        //获取分段路径
        List<List<NavigateNode>> partList = this.getSectionPath(navigateNodes);
        List<NavigateNode> firstList = partList.get(0);
        NavigateNode targetNode = null;
        if(firstList.size() <= firstPathNumber){
            targetNode = firstList.get(firstList.size() - 1);
        }else {
            targetNode = firstList.get(firstPathNumber);
        }
        String locNo = NavigatePositionConvert.nodeToLocNo(targetNode);
        return locNo;
    }
    public String findTargetLocation(List<List<NavigateNode>> partList) {
        List<NavigateNode> nodes = partList.get(partList.size() - 1);
        NavigateNode targetNode = nodes.get(0);
        NavigateNode targetNode = null;
        for (int i = partList.size(); i > 0; i--) {
            List<NavigateNode> nodes = partList.get(i - 1);
            for (NavigateNode node : nodes) {
                if (node.getNodeValue() == MapNodeType.MAIN_PATH.id) {
                    continue;
                }
                targetNode = node;
                break;
            }
            if(targetNode != null){
                break;
            }
        }
        String locNo = NavigatePositionConvert.nodeToLocNo(targetNode);
        return locNo;
    }