From 98e6dd8f3597a36512699151a7f74b6cf733268f Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 19 九月 2025 14:06:03 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/utils/NavigateUtils.java | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java index d49b64b..9197cd8 100644 --- a/src/main/java/com/zy/common/utils/NavigateUtils.java +++ b/src/main/java/com/zy/common/utils/NavigateUtils.java @@ -231,9 +231,51 @@ 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; + } + } + + if (targetNode == null) { + List<NavigateNode> list = partList.get(partList.size() - 1); + targetNode = list.get(0); + } + String locNo = NavigatePositionConvert.nodeToLocNo(targetNode); return locNo; } -- Gitblit v1.9.1