| | |
| | | |
| | | RetreatNavigateNode availablePointOfTurn = null; |
| | | List<String> availablePointWaveScopeOfTurn = new ArrayList<>(); |
| | | int actuallyLanesOfTurn = 0; |
| | | int actualLanesOfTurn = 0; |
| | | |
| | | while (openQueue.size() > 0 && null == finialNode) { |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | actuallyLanesOfTurn ++; |
| | | actualLanesOfTurn ++; |
| | | } |
| | | |
| | | // 有两条以上可走巷道,则视为有效转弯点 |
| | | if (actuallyLanesOfTurn >= 2) { |
| | | if (actualLanesOfTurn >= 2) { |
| | | availablePointOfTurn = currentNode; |
| | | availablePointWaveScopeOfTurn = mapService.getWaveScopeByCode(lev, availablePointOfTurn.getCodeData(), avoidDistance) |
| | | .stream().map(NavigateNode::getCodeData).distinct().collect(Collectors.toList()); |
| | |
| | | } |
| | | if (1 < mapDataDispatcher.queryCodeListFromDynamicNode(lev, otherWave).size()) { |
| | | |
| | | if (null != availablePointOfTurn && actuallyLanesOfTurn > 0) { |
| | | actuallyLanesOfTurn --; |
| | | if (null != availablePointOfTurn && actualLanesOfTurn > 0) { |
| | | actualLanesOfTurn --; |
| | | } |
| | | |
| | | continue label; |
| | |
| | | existNodes.add(node); |
| | | } |
| | | |
| | | if (actuallyLanesOfTurn < 2) { |
| | | if (actualLanesOfTurn < 2) { |
| | | availablePointOfTurn = null; |
| | | availablePointWaveScopeOfTurn = new ArrayList<>(); |
| | | actuallyLanesOfTurn = 0; |
| | | actualLanesOfTurn = 0; |
| | | } else { |
| | | if (!Cools.isEmpty(enableNodes)) { |
| | | Collections.sort(enableNodes); |