From 15f34a34c9588bc7b46dce8ee217e274adee38fa Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 23 十二月 2024 12:41:36 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/utils/NavigateUtils.java | 21 ++++++++++++---------
1 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 91baf99..8db9603 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -1,5 +1,6 @@
package com.zy.common.utils;
+import com.core.common.SpringUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.MapNode;
import com.zy.common.model.NavigateNode;
@@ -17,13 +18,16 @@
*/
public class NavigateUtils {
- public static List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType, List<int[]> shuttlePoints) {
+ public static List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType, List<int[]> shuttlePoints, List<int[]> whites) {
//閫氳繃寮�濮嬬紪鍙峰拰缁撴潫缂栧彿鑾峰彇瀵瑰簲鐨剎y杞村潗鏍�
int[] startArr = NavigatePositionConvert.positionToXY(startPoint);//寮�濮嬭妭鐐�
int[] endArr = NavigatePositionConvert.positionToXY(endPoint);//缁撴潫鑺傜偣
ArrayList<int[]> whiteList = new ArrayList<>();//璁剧疆璁$畻鑺傜偣鐨勭櫧鍚嶅崟
whiteList.add(startArr);//灏嗗紑濮嬭妭鐐硅缃负鐧藉悕鍗曪紝浠ラ槻琚繃婊�
+ if (whites != null && !whites.isEmpty()) {
+ whiteList.addAll(whites);//鎵归噺娣诲姞鐧藉悕鍗曡妭鐐�
+ }
//鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑
int lev = Utils.getLev(startPoint);
@@ -39,7 +43,7 @@
NavigateNode res_node = solution.astarSearch(start, end);
if (res_node == null) {
- System.out.println("鏈壘鍒拌矾寰�");
+ System.out.println(start + "," + end + "锛氭湭鎵惧埌璺緞");
return null;
} else {
ArrayList<NavigateNode> list = new ArrayList<>();
@@ -172,8 +176,9 @@
//鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈
public static Integer getXToNextDistance(NavigateNode xNode) {
- NavigateMapData mapData = new NavigateMapData();
- List<List<MapNode>> lists = mapData.getJsonData(NavigationMapType.NONE.id, null, null);
+ NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
+
+ List<List<MapNode>> lists = navigateMapData.getJsonData(xNode.getZ(), NavigationMapType.NONE.id, null, null);
if (lists != null) {
MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY());
if (mapNode != null) {
@@ -251,7 +256,7 @@
/**
* 妫�娴嬭矾寰勬槸鍚﹀彲鐢�(鍙蛋)
*/
- public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer lev) {
+ public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer lev, List<int[]> whitePoints) {
NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
if (shuttleThread == null) {
return false;
@@ -267,9 +272,7 @@
mapType = NavigationMapType.NORMAL.id;
}
- path.remove(0);//杩囨护绗竴涓妭鐐癸紝浠ラ槻绗竴涓妭鐐规槸F鐘舵�佸鑷磋溅杈嗕笉鍔�
-
- NavigateSolution solution = new NavigateSolution(mapType, lev, null, Utils.getShuttlePoints(shuttleNo, lev));//鑾峰彇鏃犵櫧鍚嶅崟鍦板浘(璇ュ湴鍥惧寘鍚皬杞﹀潗鏍�)
+ NavigateSolution solution = new NavigateSolution(mapType, lev, whitePoints, Utils.getShuttlePoints(shuttleNo, lev));//鑾峰彇鏃犵櫧鍚嶅崟鍦板浘(璇ュ湴鍥惧寘鍚皬杞﹀潗鏍�)
int[][] map = solution.map;
for (NavigateNode node : path) {
int value = map[node.getX()][node.getY()];
@@ -282,7 +285,7 @@
public static void main(String[] args) {
//璁$畻璺緞
- List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null);
+ List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null, null);
System.out.println(calc);
System.out.println("------------------------");
// List<NavigateNode> calc = calc("0501401", "0201801", "out");
--
Gitblit v1.9.1