自动化立体仓库 - WCS系统
Junjie
2024-11-22 b1aa89d5cc6058a04a848f5d6973f581757eed3f
src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -3,6 +3,7 @@
import com.zy.common.model.NavigateNode;
import java.util.ArrayList;
import java.util.List;
import java.util.PriorityQueue;
/**
@@ -21,10 +22,13 @@
        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 mapData = new NavigateMapData(lev);
        int[][] data = mapData.getDataFromRedis(mapType, whitePoints, shuttlePoints);
        if (data == null) {
            data = mapData.getData(mapType, whitePoints, shuttlePoints);
        }
        this.map = data;
    }
@@ -135,8 +139,8 @@
            }
        }
        if (map[x][y] == 0 || map[x][y] == 3) {
            //子轨和母轨才能进行上下移动
        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 +208,7 @@
        拿到父节点和下一节点
        通过判断父节点和下一节点的x数据和y数据都不相同时,则表明当前坐标是一个拐点
         */
        return 2;
        return 10;
    }
    //------------------A*启发函数-end------------------//