From 0e8ecae4a1140c5e23475bbd589f591208e9ed65 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Mon, 04 Jan 2021 12:21:55 +0000
Subject: [PATCH] 代码注释

---
 app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java b/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java
index 824b40d..da44524 100644
--- a/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java
+++ b/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java
@@ -15,7 +15,7 @@
 
 public class DijkstraUtils {
 
-    HashMap<PathPlan.Place, PathPlan.Distance> distances;
+    HashMap<PathPlan.Place, PathPlan.Distance> distances;//每个点的信息集合
 
     public DijkstraUtils(HashMap<PathPlan.Place, PathPlan.Distance> distances) {
         this.distances = distances;
@@ -27,7 +27,7 @@
     }
 
     /**
-     * 执行
+     * 执行算法
      * @param start  起点
      * @param end
      */
@@ -42,16 +42,16 @@
         ArrayList<PathPlan.Place> places = new ArrayList<>();
         places.add(start);
         while (distances.size()>0){//循环遍历
-            PathPlan.Place nearWay = findNearWay(startDis);
-            startDis = distances.get(nearWay);
-            deletePlace(nearWay);
-            places.add(nearWay);
+            PathPlan.Place nearWay = findNearWay(startDis);//获取与其他点的最短个那一个
+            startDis = distances.get(nearWay);//距离信息
+            deletePlace(nearWay);//从集合中删除,避免下次循环再次出现该地点
+            places.add(nearWay);//添加到线路集合记录中
         }
-        if(end != null){
+        if(end != null){//如果有终点则最后追加
             end.distance = endDis.distanceMap.get(places.get(places.size()-1));
             places.add(end);
         }
-        return places;
+        return places;//返回规划的路线集合
 
     }
 
@@ -113,10 +113,12 @@
     ArrayList<ArrayList<PathPlan.Place>> arrayLists = new ArrayList<>();//路线记录
     /**
      * 自定义规划路线算法
+     * @param start 起始地点
+     * @param end   末尾地点
      */
     public  ArrayList<ArrayList<PathPlan.Place>> initCustomPathPlan(  PathPlan.Place start,PathPlan.Place end){
         arrayLists.clear();//清空记录
-        ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());
+        ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());//所有地点集合
         for(int i=1;i<=places.size();i++){
             sortPlace(places,new ArrayList<PathPlan.Place>(),i,start,end);
         }
@@ -128,17 +130,17 @@
 
     /**
      * 组合
-     * @param datas
-     * @param target
-     * @param num
-     * @param start 起始
-     * @param end   末尾
+     * @param datas  地点数据
+     * @param target 整理的新路线
+     * @param num   循环的下标位置,即路线规划的地点数量
+     * @param start 起始地点
+     * @param end   末尾地点
      */
     private void sortPlace(ArrayList<PathPlan.Place>  datas, ArrayList<PathPlan.Place>  target,int num,PathPlan.Place start,PathPlan.Place end) {
         if (target.size() == num) {
             ArrayList newDatas = new ArrayList( );
-            ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());
-            //数量不够,起始和末尾不对应
+            ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());//所有地点集合
+            //数量不够,起始和末尾不对应,则不再执行
             if(places.size()> num || start!=null && !target.get(0).equals(start) || end!=null && !target.get(target.size()-1).equals(end)){
                 return;
             }
@@ -154,7 +156,7 @@
             //记录最短距离
             if(dist == -1 || dist >= tempDist){
                 if(dist > tempDist){
-                    arrayLists.clear();
+                    arrayLists.clear();//清除之前的数据
                 }
                 dist = tempDist;
                 arrayLists.add(newDatas);
@@ -171,6 +173,11 @@
             sortPlace(newDatas, newTarget,num,start,end);
         }
     }
+
+    /**
+     * 创建一个随机位置  坐标在0-100内
+     * @return
+     */
     public static Point random(){
         Point point = new Point();
 

--
Gitblit v1.9.1