From b81245aa621ac10e3066e6e7bed932ee3ec5b91a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 28 十月 2023 13:23:27 +0800
Subject: [PATCH] #跨楼层移动节点计算采取不同方案

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

diff --git a/src/main/java/com/zy/common/utils/NavigateMapData.java b/src/main/java/com/zy/common/utils/NavigateMapData.java
index 6b706e1..62b43e6 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapData.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapData.java
@@ -146,6 +146,37 @@
         return null;
     }
 
+    //鑾峰彇JSON鏍煎紡鏁版嵁
+    public List<List<MapNode>> getJsonData(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+        try {
+            String mapFilename = "map_" + lev + ".json";
+
+            String fileName = this.getClass().getClassLoader().getResource(mapFilename).getPath();//鑾峰彇鏂囦欢璺緞
+            File file = new File(fileName);
+            StringBuffer stringBuffer = new StringBuffer();
+            if (file.isFile() && file.exists()) {
+                InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK");
+                BufferedReader br = new BufferedReader(isr);
+                String lineTxt = null;
+                while ((lineTxt = br.readLine()) != null) {
+                    stringBuffer.append(lineTxt);
+                }
+                br.close();
+
+                //瑙f瀽json鍦板浘鏁版嵁
+                ArrayList arrayList = JSON.parseObject(stringBuffer.toString(), ArrayList.class);
+                List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
+
+                return lists;
+            } else {
+                System.out.println("鏂囦欢涓嶅瓨鍦�!");
+            }
+        } catch (IOException ioException) {
+            ioException.printStackTrace();
+        }
+        return null;
+    }
+
     /**
      * 杩囨护鍦板浘鏁版嵁
      * mapType -1=>鏃犺繃婊わ紝1=銆嬭繃婊ゅ簱浣嶇姸鎬丏FX锛�2=銆嬭繃婊ゅ簱浣嶇姸鎬乆
@@ -232,6 +263,25 @@
             }
         }
 
+        //鍔犺浇鐧藉悕鍗曡妭鐐�
+        List<List<MapNode>> realMap = getJsonData(lev, -1, null, null);//鑾峰彇瀹屾暣鍦板浘
+        for (int[] points : whitePoints) {
+            //鑾峰彇鍘熷鑺傜偣鏁版嵁
+            int x = points[0];
+            int y = points[1];
+            List<MapNode> rows = realMap.get(x);
+            MapNode col = rows.get(y);
+
+            List<MapNode> list = lists.get(x);
+            MapNode mapNode = list.get(y);
+            mapNode.setValue(col.getValue());//鎭㈠鍘熷鑺傜偣
+
+            //鏇存柊list
+            list.set(y, mapNode);
+            lists.set(x, list);
+        }
+
+
         return lists;
     }
 

--
Gitblit v1.9.1