|
@@ -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))
|
|
|
|
+ }
|
|
|
|
+}
|