From 9f05696822f8feee385a34a92dd9aa16009e84a0 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 18 六月 2023 12:38:00 +0800 Subject: [PATCH] 寻路算法,地图节点优化,剔除原入出库模式获取地图节点方案,改为根据库位状态实时获取节点信息或直接获取无过滤的完整节点信息 --- src/main/java/com/zy/common/utils/NavigateUtils.java | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java index 9ac5f03..35b0f3a 100644 --- a/src/main/java/com/zy/common/utils/NavigateUtils.java +++ b/src/main/java/com/zy/common/utils/NavigateUtils.java @@ -3,6 +3,7 @@ import com.zy.asrs.utils.Utils; import com.zy.common.model.MapNode; import com.zy.common.model.NavigateNode; +import com.zy.common.model.enums.NavigationMapType; import com.zy.core.enums.ShuttleTaskModeType; import java.util.*; @@ -17,6 +18,9 @@ int[] startArr = NavigatePositionConvert.positionToXY(startPoint);//寮�濮嬭妭鐐� int[] endArr = NavigatePositionConvert.positionToXY(endPoint);//缁撴潫鑺傜偣 + ArrayList<int[]> whiteList = new ArrayList<>();//璁剧疆璁$畻鑺傜偣鐨勭櫧鍚嶅崟 + whiteList.add(startArr);//灏嗗紑濮嬭妭鐐硅缃负鐧藉悕鍗曪紝浠ラ槻琚繃婊� + //鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑 int lev = Utils.getLev(startPoint); @@ -26,7 +30,9 @@ start.setFather(null); NavigateNode end = new NavigateNode(endArr[0], endArr[1]); - NavigateSolution solution = new NavigateSolution(mapType, lev); + NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList); + //寮�濮嬭妭鐐癸紝涓嶇撼鍏ョ鐢ㄨ妭鐐瑰唴璁$畻 + NavigateNode res_node = solution.astarSearch(start, end); if (res_node == null) { System.out.println("鏈壘鍒拌矾寰�"); @@ -163,7 +169,7 @@ //鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈 public static Integer getXToNextDistance(NavigateNode xNode) { NavigateMapData mapData = new NavigateMapData(); - List<List<MapNode>> lists = mapData.getJsonData(1); + List<List<MapNode>> lists = mapData.getJsonData(NavigationMapType.NONE.id, null); if (lists != null) { MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY()); if (mapNode != null) { @@ -224,7 +230,7 @@ public static void main(String[] args) { //璁$畻璺緞 - List<NavigateNode> calc = calc("1000901", "1800201", ShuttleTaskModeType.PAK_OUT.id); + List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id); System.out.println(calc); System.out.println("------------------------"); // List<NavigateNode> calc = calc("0501401", "0201801", "out"); -- Gitblit v1.9.1