Преглед на файлове

港口测试底图栅格json

huangchunxi преди 1 месец
родител
ревизия
71804959db
променени са 2 файла, в които са добавени 166 реда и са изтрити 1 реда
  1. 1 1
      src/main/java/com/ecnu/platform/test/TestPortGraph.groovy
  2. 165 0
      src/main/java/com/ecnu/platform/test/TestPortGrid.groovy

+ 1 - 1
src/main/java/com/ecnu/platform/test/TestPortGraph.groovy

@@ -50,7 +50,7 @@ class TestPortGraph {
         algBaseMap.setPcsBorder(coordinateBaseMap)
 
 
-        // 作业车道
+        // 作业车道JOB
         ArrayList<AlgBaseMapArea> jobLaneList = new ArrayList<>()
         double xJobLane = xInitial + 3.3 * multiple
         double yJobLane = yInitial + 2.6 * multiple

+ 165 - 0
src/main/java/com/ecnu/platform/test/TestPortGrid.groovy

@@ -0,0 +1,165 @@
+package com.ecnu.platform.test
+
+import com.ecnu.alg.pojo.path.data.AlgPathStrategyInputData
+import com.ecnu.alg.pojo.path.inputs.AlgBaseMap
+import com.ecnu.alg.pojo.path.inputs.AlgBaseMapArea
+import com.three.common.utils.GsonUtil
+
+class TestPortGrid {
+
+    static void main(String[] args) {
+
+        ArrayList<Integer> xUnitList = new ArrayList<>()
+        ArrayList<Integer> yUnitList = new ArrayList<>()
+        // int[] xUnit = {0 1 1 0 0}
+        xUnitList.add(0)
+        xUnitList.add(1)
+        xUnitList.add(1)
+        xUnitList.add(0)
+        xUnitList.add(0)
+        // int[] yUnit = {0 0 1 1 0}
+        yUnitList.add(0)
+        yUnitList.add(0)
+        yUnitList.add(1)
+        yUnitList.add(1)
+        yUnitList.add(0)
+        double multiple = 1
+        double xInitial = 0
+        double yInitial = 0
+        double gridInterval = 100 * multiple
+
+
+        AlgPathStrategyInputData algPathStrategyInputData = new AlgPathStrategyInputData()
+
+        // 港口测试底图
+        AlgBaseMap algBaseMap = new AlgBaseMap()
+        algBaseMap.setId("testPort")
+        algBaseMap.setName("港口测试底图")
+
+        double xBaseMap = xInitial + 0 * multiple
+        double yBaseMap = yInitial + 0 * multiple
+        double widthBaseMap = 920 * multiple
+        double heightBaseMap = 138 * multiple
+        String coordinateBaseMap = new String()
+        for (int i = 0; i < 5; i++){
+            coordinateBaseMap += xBaseMap + xUnitList.get(i) * widthBaseMap + ","
+            coordinateBaseMap += yBaseMap + yUnitList.get(i) * heightBaseMap
+            if (i != 4){
+                coordinateBaseMap += ";"
+            }
+        }
+        algBaseMap.setPcsBorder(coordinateBaseMap)
+
+
+        // 作业车道栅格JOB_GRID
+        ArrayList<AlgBaseMapArea> jobGridList = new ArrayList<>()
+        double xJobLane = xInitial + 3.3 * multiple
+        double yJobLane = yInitial + 2.6 * multiple
+        double widthJobLane = 914.5 * multiple
+        double heightJobLane = 4 * multiple
+        double gapJobLane = 0 * multiple
+        int sizeJobLane = 8
+
+        for (int i = 0; i < sizeJobLane; i++){
+            double yNext = yJobLane + i * (heightJobLane + gapJobLane)
+            String coordinateJobGrid = new String()
+            int num = Math.floor(widthJobLane/gridInterval)
+
+            int k = 0
+            while (true){
+                AlgBaseMapArea algBaseMapArea = new AlgBaseMapArea()
+                algBaseMapArea.setMapId("testPort")
+                String jobGridId = "JOB_GRID" + (i*num + k)
+                algBaseMapArea.setId(jobGridId)
+                algBaseMapArea.setType("lane")
+
+                double xNext = xJobLane + k * gridInterval
+                if (xNext + gridInterval < widthJobLane){
+                    for (int j = 0;j < 5; j++){
+                        coordinateJobGrid += xNext + xUnitList.get(j) * gridInterval + ","
+                        coordinateJobGrid += yNext + yUnitList.get(j) * heightJobLane
+                        if (j != 4){
+                            coordinateJobGrid += ";"
+                        }
+                    }
+                    algBaseMapArea.setPcsBorder(coordinateJobGrid)
+                    jobGridList.add(algBaseMapArea)
+                    k = k + 1
+                }else {
+                    for (int j = 0;j < 5; j++){
+                        coordinateJobGrid += xNext + xUnitList.get(j) * (widthJobLane - xNext) + ","
+                        coordinateJobGrid += yNext + yUnitList.get(j) * heightJobLane
+                        if (j != 4){
+                            coordinateJobGrid += ";"
+                        }
+                    }
+                    algBaseMapArea.setPcsBorder(coordinateJobGrid)
+                    jobGridList.add(algBaseMapArea)
+                    break
+                }
+            }
+        }
+
+
+        // 行车道栅格T_GRID
+        ArrayList<AlgBaseMapArea> trafficGridList = new ArrayList<>()
+        double xTrafficLane = xInitial + 3.3 * multiple
+        double yTrafficLane = yInitial + 61.8 * multiple
+        double widthTrafficLane = 914.5 * multiple
+        double heightTrafficLane = 4 * multiple
+        double gapTrafficLane = 0 * multiple
+        int sizeTrafficLane = 7
+
+        for (int i = 0; i < sizeTrafficLane; i++){
+            double yNext = yTrafficLane + i * (heightTrafficLane + gapTrafficLane)
+            String coordinateTrafficGrid = new String()
+            int num = Math.floor(widthTrafficLane/gridInterval)
+
+            int k = 0
+            while (true){
+                AlgBaseMapArea algBaseMapArea = new AlgBaseMapArea()
+                algBaseMapArea.setMapId("testPort")
+                String trafficGridId = "T_GRID" + (i*num + k)
+                algBaseMapArea.setId(trafficGridId)
+                algBaseMapArea.setType("lane")
+
+                double xNext = xTrafficLane + k * gridInterval
+                if (xNext + gridInterval < widthJobLane){
+                    for (int j = 0;j < 5; j++){
+                        coordinateTrafficGrid += xNext + xUnitList.get(j) * gridInterval + ","
+                        coordinateTrafficGrid += yNext + yUnitList.get(j) * heightTrafficLane
+                        if (j != 4){
+                            coordinateTrafficGrid += ";"
+                        }
+                    }
+                    algBaseMapArea.setPcsBorder(coordinateTrafficGrid)
+                    trafficGridList.add(algBaseMapArea)
+                    k = k + 1
+                }else {
+                    for (int j = 0;j < 5; j++){
+                        coordinateTrafficGrid += xNext + xUnitList.get(j) * (widthTrafficLane - xNext) + ","
+                        coordinateTrafficGrid += yNext + yUnitList.get(j) * heightTrafficLane
+                        if (j != 4){
+                            coordinateTrafficGrid += ";"
+                        }
+                    }
+                    algBaseMapArea.setPcsBorder(coordinateTrafficGrid)
+                    trafficGridList.add(algBaseMapArea)
+                    break
+                }
+            }
+        }
+
+
+        // 合并底图区域数据
+        ArrayList<Integer> mergedList = new ArrayList<>()
+        mergedList.addAll(jobGridList)
+        mergedList.addAll(trafficGridList)
+
+        // 输入数据
+        algPathStrategyInputData.setAlgBaseMap(algBaseMap)
+        algPathStrategyInputData.setAlgBaseMapAreaList(mergedList)
+
+        println(GsonUtil.toJson(algPathStrategyInputData))
+    }
+}