自动化立体仓库 - WCS系统
Junjie
2023-03-27 749ab7303f266992bdd603fbe64fc36b56855739
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.zy.common.utils;
 
/**
 * 库位编号和A*算法的xy轴转换工具类
 */
public class NavigatePositionConvert {
 
    //坐标编号转xy轴
    public static int[] positionToXY(String position) {
        int col = Integer.parseInt(position.substring(0, 2));
        int row = Integer.parseInt(position.substring(2, 5));
        int[] newPosition = coverPosition(col,row);
        //返回x和y
//        return new int[]{row, col};
        return newPosition;
    }
 
    //xy轴转坐标编号
    public static Short xyToPosition(int x, int y) {
        StringBuffer sb = new StringBuffer();
        sb.append(y);
        if (x < 10) {
            sb.append("00");
        } else if (x < 100) {
            sb.append("0");
        }
        sb.append(x);
        return Short.parseShort(sb.toString());
    }
 
    //转换行号,实际中最底层可能是第一行,在数组中最底层是最后一行,因此需要进行转换才可以匹配数据
    public static int covertRow(int row) {
        NavigateMapData mapData = new NavigateMapData();
        int[][] data = mapData.getData();
        //实际行数
        int realRow = data.length - 1;
        return realRow - row;
    }
 
    public static int[] coverPosition(int col,int row) {
        return new int[]{row, col};
    }
 
}