From 88a1fbd68cfb38c921fbf83c92d17b38a4a5975a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 02 八月 2023 09:14:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigateUtils.java |   39 +++++++++++++++++++++++++++++++++++----
 1 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index eb2b668..e0a730d 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -222,10 +222,41 @@
     /**
      * 鑾峰彇涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
      */
-    public static Integer getMiddleToDistDistance(List<NavigateNode> path, Integer distance) {
-        //涓棿璺緞
-        NavigateNode middlePath = path.get(path.size() - distance);
-        return middlePath.getMoveDistance();
+    public static Integer getMiddleToDistDistance(List<NavigateNode> path, NavigateNode middlePath) {
+        //鏈�鍚庝竴鏉¤妭鐐逛笉璁$畻杩涜璧拌窛绂�
+        NavigateNode lastPath = path.get(path.size() - 1);
+        //鎬昏窛绂�
+        int allDistance = 0;
+        boolean flag = false;
+        for (NavigateNode navigateNode : path) {
+            if (!flag && navigateNode.equals(middlePath)) {
+                flag = true;
+            }
+
+            if (navigateNode.equals(lastPath)) {
+                continue;//鏈�鍚庝竴鏉¤妭鐐逛笉璁$畻杩涜璧拌窛绂�
+            }
+
+            if (flag) {
+                allDistance += navigateNode.getMoveDistance();
+            }
+        }
+        return allDistance;
+    }
+
+    /**
+     * 妫�娴嬭矾寰勬槸鍚﹀彲鐢�(鍙蛋)
+     */
+    public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer lev) {
+        NavigateSolution solution = new NavigateSolution(NavigationMapType.DFX.id, lev, null, Utils.getShuttlePoints(shuttleNo, lev));//鑾峰彇鏃犵櫧鍚嶅崟鍦板浘(璇ュ湴鍥惧寘鍚皬杞﹀潗鏍�)
+        int[][] map = solution.map;
+        for (NavigateNode node : path) {
+            int value = map[node.getX()][node.getY()];
+            if (value != 0 && value != 3) {
+                return false;
+            }
+        }
+        return true;
     }
 
     public static void main(String[] args) {

--
Gitblit v1.9.1