From e039dbc9aa07fabb13be9673cbb7dfccfecda870 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 23 十一月 2024 08:14:28 +0800
Subject: [PATCH] #读取地图文件优化

---
 src/main/java/com/zy/common/utils/NavigateSolution.java |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateSolution.java b/src/main/java/com/zy/common/utils/NavigateSolution.java
index 5e2e9a4..ccf08b8 100644
--- a/src/main/java/com/zy/common/utils/NavigateSolution.java
+++ b/src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -1,8 +1,10 @@
 package com.zy.common.utils;
 
+import com.core.common.SpringUtils;
 import com.zy.common.model.NavigateNode;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.PriorityQueue;
 
 /**
@@ -16,15 +18,20 @@
 
     public NavigateSolution() {
         //杞藉叆鍦板浘
-        NavigateMapData mapData = new NavigateMapData();
-        int[][] data = mapData.getData();
+        NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
+        navigateMapData.setLev(1);
+        int[][] data = navigateMapData.getData();
         this.map = data;
     }
 
-    public NavigateSolution(Integer mapType) {
-        //杞藉叆鍦板浘
-        NavigateMapData mapData = new NavigateMapData();
-        int[][] data = mapData.getData(mapType);
+    public NavigateSolution(Integer mapType, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+        //杞藉叆鍦板浘鎸囧畾灞傞珮鍦板浘
+        NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
+        navigateMapData.setLev(lev);
+        int[][] data = navigateMapData.getDataFromRedis(mapType, whitePoints, shuttlePoints);
+        if (data == null) {
+            data = navigateMapData.getData(mapType, whitePoints, shuttlePoints);
+        }
         this.map = data;
     }
 
@@ -135,8 +142,8 @@
             }
         }
 
-        if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4) {
-            //瀛愯建鍜屾瘝杞ㄣ�佽緭閫佺嚎鎵嶈兘杩涜涓婁笅绉诲姩
+        if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4 || map[x][y] == 5) {
+            //瀛愯建鍜屾瘝杞ㄣ�佽緭閫佺嚎銆佸厖鐢垫々鎵嶈兘杩涜涓婁笅绉诲姩
             if (is_valid(x + 1, y))
             {
                 NavigateNode node = new NavigateNode(x + 1, y);
@@ -204,7 +211,7 @@
         鎷垮埌鐖惰妭鐐瑰拰涓嬩竴鑺傜偣
         閫氳繃鍒ゆ柇鐖惰妭鐐瑰拰涓嬩竴鑺傜偣鐨剎鏁版嵁鍜寉鏁版嵁閮戒笉鐩稿悓鏃讹紝鍒欒〃鏄庡綋鍓嶅潗鏍囨槸涓�涓嫄鐐�
          */
-        return 2;
+        return 10;
     }
 
     //------------------A*鍚彂鍑芥暟-end------------------//

--
Gitblit v1.9.1