From 19df3213d5d4a7b85d2d4ceffef7460a59c1f062 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 10 六月 2023 19:20:27 +0800 Subject: [PATCH] fixed --- src/main/java/com/zy/common/utils/NavigateUtils.java | 35 +++++++++++++++++++++++++++++------ 1 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java index 38fbb15..d96542a 100644 --- a/src/main/java/com/zy/common/utils/NavigateUtils.java +++ b/src/main/java/com/zy/common/utils/NavigateUtils.java @@ -1,6 +1,7 @@ package com.zy.common.utils; -import com.alibaba.fastjson.JSONObject; +import com.zy.asrs.utils.Utils; +import com.zy.common.model.MapNode; import com.zy.common.model.NavigateNode; import com.zy.core.enums.ShuttleTaskModeType; @@ -16,13 +17,16 @@ int[] startArr = NavigatePositionConvert.positionToXY(startPoint);//寮�濮嬭妭鐐� int[] endArr = NavigatePositionConvert.positionToXY(endPoint);//缁撴潫鑺傜偣 + //鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑 + int lev = Utils.getLev(startPoint); + //鍒濆鍖栧紑濮嬭妭鐐� NavigateNode start = new NavigateNode(startArr[0], startArr[1]); //寮�濮嬭妭鐐规棤鐖惰妭鐐� start.setFather(null); NavigateNode end = new NavigateNode(endArr[0], endArr[1]); - NavigateSolution solution = new NavigateSolution(mapType); + NavigateSolution solution = new NavigateSolution(mapType, lev); NavigateNode res_node = solution.astarSearch(start, end); if (res_node == null) { System.out.println("鏈壘鍒拌矾寰�"); @@ -35,6 +39,7 @@ while (res_node != null) { res_node.setDirection(null); res_node.setIsInflectionPoint(false); + res_node.setZ(lev);//璁剧疆灞傞珮 //瀵绘壘鎷愮偣 HashMap<String, Object> result = searchInflectionPoint(res_node, fatherNode, res_node.getFather());//鍒嗗埆浼犲叆褰撳墠鑺傜偣銆佺埗鑺傜偣銆佷笅涓�鑺傜偣 @@ -158,11 +163,20 @@ //鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈 public static Integer getXToNextDistance(NavigateNode xNode) { NavigateMapData mapData = new NavigateMapData(); - ArrayList<ArrayList<JSONObject>> lists = mapData.getJsonData(1); + List<List<MapNode>> lists = mapData.getJsonData(1); if (lists != null) { - JSONObject jsonObject = lists.get(xNode.getX()).get(xNode.getY()); - if (jsonObject != null) { - return Integer.parseInt(jsonObject.getOrDefault(xNode.getDirection(), 0).toString()); + MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY()); + if (mapNode != null) { + switch (xNode.getDirection()) { + case "top": + return mapNode.getTop(); + case "bottom": + return mapNode.getBottom(); + case "left": + return mapNode.getLeft(); + case "right": + return mapNode.getRight(); + } } return 0; } @@ -186,6 +200,15 @@ return allDistance; } + /** + * 鑾峰彇涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� + */ + public static Integer getMiddleToDistDistance(List<NavigateNode> path) { + //涓棿璺緞 + NavigateNode middlePath = path.get(path.size() - 2); + return middlePath.getMoveDistance(); + } + public static void main(String[] args) { //璁$畻璺緞 List<NavigateNode> calc = calc("1000901", "1800201", ShuttleTaskModeType.PAK_OUT.id); -- Gitblit v1.9.1