| | |
| | | /** |
| | | * 获取中间点到目标点行走距离 |
| | | */ |
| | | public static Integer getMiddleToDistDistance(List<NavigateNode> path, Integer distance) { |
| | | //中间路径 |
| | | NavigateNode middlePath = path.get(path.size() - distance); |
| | | return middlePath.getMoveDistance(); |
| | | public static Integer getMiddleToDistDistance(List<NavigateNode> path, NavigateNode middlePath) { |
| | | //最后一条节点不计算进行走距离 |
| | | NavigateNode lastPath = path.get(path.size() - 1); |
| | | //总距离 |
| | | int allDistance = 0; |
| | | boolean flag = false; |
| | | for (NavigateNode navigateNode : path) { |
| | | if (!flag && navigateNode.equals(middlePath)) { |
| | | flag = true; |
| | | } |
| | | |
| | | if (navigateNode.equals(lastPath)) { |
| | | continue;//最后一条节点不计算进行走距离 |
| | | } |
| | | |
| | | if (flag) { |
| | | allDistance += navigateNode.getMoveDistance(); |
| | | } |
| | | } |
| | | return allDistance; |
| | | } |
| | | |
| | | /** |
| | | * 检测路径是否可用(可走) |
| | | */ |
| | | public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer lev) { |
| | | NavigateSolution solution = new NavigateSolution(NavigationMapType.DFX.id, lev, null, Utils.getShuttlePoints(shuttleNo, lev));//获取无白名单地图(该地图包含小车坐标) |
| | | int[][] map = solution.map; |
| | | for (NavigateNode node : path) { |
| | | int value = map[node.getX()][node.getY()]; |
| | | if (value != 0 && value != 3) { |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | public static void main(String[] args) { |