From d3cc456ffe53a2423c80377d4d96b79459405e29 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 09 九月 2023 16:21:09 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 16be082..e0a730d 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -223,6 +223,8 @@
      * 鑾峰彇涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
      */
     public static Integer getMiddleToDistDistance(List<NavigateNode> path, NavigateNode middlePath) {
+        //鏈�鍚庝竴鏉¤妭鐐逛笉璁$畻杩涜璧拌窛绂�
+        NavigateNode lastPath = path.get(path.size() - 1);
         //鎬昏窛绂�
         int allDistance = 0;
         boolean flag = false;
@@ -231,6 +233,10 @@
                 flag = true;
             }
 
+            if (navigateNode.equals(lastPath)) {
+                continue;//鏈�鍚庝竴鏉¤妭鐐逛笉璁$畻杩涜璧拌窛绂�
+            }
+
             if (flag) {
                 allDistance += navigateNode.getMoveDistance();
             }
@@ -238,6 +244,21 @@
         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) {
         //璁$畻璺緞
         List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null);

--
Gitblit v1.9.1