From 9a516a0f650c3192071a20431789ea3942fbba8d Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 06 二月 2025 16:52:20 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/utils/NavigateMapUtils.java | 13 +++++++------
src/main/java/com/zy/common/model/NavigateNode.java | 1 +
src/main/java/com/zy/common/utils/NavigateUtils.java | 10 ++++++++--
src/main/java/com/zy/common/utils/NavigateSolution.java | 12 ++++++++++--
4 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/common/model/NavigateNode.java b/src/main/java/com/zy/common/model/NavigateNode.java
index dbe37d6..744fec3 100644
--- a/src/main/java/com/zy/common/model/NavigateNode.java
+++ b/src/main/java/com/zy/common/model/NavigateNode.java
@@ -20,6 +20,7 @@
private Boolean isInflectionPoint;//鏄惁涓烘嫄鐐�
private String direction;//琛岃蛋鏂瑰悜
private Integer moveDistance;//琛岃蛋璺濈
+ private Integer nodeValue;//鑺傜偣鏁版嵁
public NavigateNode(int x, int y) {
this.x = x;
diff --git a/src/main/java/com/zy/common/utils/NavigateMapUtils.java b/src/main/java/com/zy/common/utils/NavigateMapUtils.java
index 1308af1..308cd55 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapUtils.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.BasMap;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.MapNode;
@@ -42,7 +43,11 @@
ArrayList arrayList = JSON.parseObject(basMap.getData(), ArrayList.class);
//甯﹀皬杞﹀湴鍥�
List<List<MapNode>> listsHasShuttle = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, shuttlePoints);//鑾峰彇甯﹀皬杞﹀湴鍥炬暟鎹�
- List<List<MapNode>> lists = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, null);//鑾峰彇鍏ㄩ儴鍦板浘鏁版嵁
+
+ //鑾峰彇鍏ㄩ儴鍦板浘鏁版嵁
+ List<List<MapNode>> lists = navigateMapData.rebuildData(arrayList);
+ //杞藉叆搴撲綅淇℃伅
+ lists = navigateMapData.loadLocMast(NavigationMapType.NONE.id, lists, lev, null);
//妫�娴嬭矾寰勬槸鍚﹁閿佸畾
if (lock) {
@@ -59,7 +64,6 @@
}
//灏濊瘯閿佸畾/瑙i攣璺緞
- List<List<MapNode>> realMap = navigateMapData.getJsonData(nodes.get(0).getZ(), -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
for (NavigateNode node : nodes) {
if (node.getZ() != lev) {
continue;
@@ -70,10 +74,7 @@
if (lock) {
mapNode.setValue(MapNodeType.LOCK.id);//绂佺敤搴撲綅
} else {
- //鑾峰彇鍘熷鑺傜偣鏁版嵁
- List<MapNode> rows = realMap.get(node.getX());
- MapNode col = rows.get(node.getY());
- mapNode.setValue(col.getValue());//鎭㈠搴撲綅
+ mapNode.setValue(node.getNodeValue());//鎭㈠鍘熷鑺傜偣鏁版嵁
}
listX.set(node.getY(), mapNode);
diff --git a/src/main/java/com/zy/common/utils/NavigateSolution.java b/src/main/java/com/zy/common/utils/NavigateSolution.java
index 13df2e2..1967be1 100644
--- a/src/main/java/com/zy/common/utils/NavigateSolution.java
+++ b/src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -195,11 +195,13 @@
if (is_valid(x + 1, y))
{
NavigateNode node = new NavigateNode(x + 1, y);
+ node.setNodeValue(map[x + 1][y]);
neighbour_node.add(node);
}
if (is_valid(x - 1, y))
{
- NavigateNode node = new NavigateNode(x -1, y);
+ NavigateNode node = new NavigateNode(x - 1, y);
+ node.setNodeValue(map[x - 1][y]);
neighbour_node.add(node);
}
}
@@ -209,11 +211,13 @@
if (is_valid(x, y + 1))
{
NavigateNode node = new NavigateNode(x, y + 1);
+ node.setNodeValue(map[x][y + 1]);
neighbour_node.add(node);
}
if (is_valid(x, y - 1))
{
NavigateNode node = new NavigateNode(x, y - 1);
+ node.setNodeValue(map[x][y - 1]);
neighbour_node.add(node);
}
}
@@ -223,11 +227,13 @@
if (is_valid(x, y + 1))
{
NavigateNode node = new NavigateNode(x, y + 1);
+ node.setNodeValue(map[x][y + 1]);
neighbour_node.add(node);
}
if (is_valid(x, y - 1))
{
NavigateNode node = new NavigateNode(x, y - 1);
+ node.setNodeValue(map[x][y - 1]);
neighbour_node.add(node);
}
}
@@ -237,11 +243,13 @@
if (is_valid(x + 1, y))
{
NavigateNode node = new NavigateNode(x + 1, y);
+ node.setNodeValue(map[x + 1][y]);
neighbour_node.add(node);
}
if (is_valid(x - 1, y))
{
- NavigateNode node = new NavigateNode(x -1, y);
+ NavigateNode node = new NavigateNode(x - 1, y);
+ node.setNodeValue(map[x - 1][y]);
neighbour_node.add(node);
}
}
diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 22d5fab..cb21ea1 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -48,14 +48,17 @@
//鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑
int lev = Utils.getLev(startPoint);
+ NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+ int[][] map = solution.map;
//鍒濆鍖栧紑濮嬭妭鐐�
NavigateNode start = new NavigateNode(startArr[0], startArr[1]);
//寮�濮嬭妭鐐规棤鐖惰妭鐐�
start.setFather(null);
+ start.setNodeValue(map[startArr[0]][startArr[1]]);
NavigateNode end = new NavigateNode(endArr[0], endArr[1]);
- NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+ end.setNodeValue(map[endArr[0]][endArr[1]]);
//寮�濮嬭妭鐐癸紝涓嶇撼鍏ョ鐢ㄨ妭鐐瑰唴璁$畻
NavigateNode res_node = solution.astarSearchJava(start, end);
@@ -118,14 +121,17 @@
//鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑
int lev = Utils.getLev(startPoint);
+ NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+ int[][] map = solution.map;
//鍒濆鍖栧紑濮嬭妭鐐�
NavigateNode start = new NavigateNode(startArr[0], startArr[1]);
+ start.setNodeValue(map[startArr[0]][startArr[1]]);
//寮�濮嬭妭鐐规棤鐖惰妭鐐�
start.setFather(null);
NavigateNode end = new NavigateNode(endArr[0], endArr[1]);
- NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+ end.setNodeValue(map[endArr[0]][endArr[1]]);
//寮�濮嬭妭鐐癸紝涓嶇撼鍏ョ鐢ㄨ妭鐐瑰唴璁$畻
String pathStr = solution.astarSearchPython(start, end, pythonCalcPath);
--
Gitblit v1.9.1