From 1983e747ee2368186cef348fd31e9e5163f56634 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 24 七月 2023 13:53:29 +0800
Subject: [PATCH] liftUpdate
---
src/main/java/com/zy/common/utils/NavigateUtils.java | 32 ++++++++++++++++++++++++--------
1 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 35b0f3a..950116e 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -13,7 +13,7 @@
*/
public class NavigateUtils {
- public static List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType) {
+ public static List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType, List<int[]> shuttlePoints) {
//閫氳繃寮�濮嬬紪鍙峰拰缁撴潫缂栧彿鑾峰彇瀵瑰簲鐨剎y杞村潗鏍�
int[] startArr = NavigatePositionConvert.positionToXY(startPoint);//寮�濮嬭妭鐐�
int[] endArr = NavigatePositionConvert.positionToXY(endPoint);//缁撴潫鑺傜偣
@@ -30,7 +30,7 @@
start.setFather(null);
NavigateNode end = new NavigateNode(endArr[0], endArr[1]);
- NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList);
+ NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
//寮�濮嬭妭鐐癸紝涓嶇撼鍏ョ鐢ㄨ妭鐐瑰唴璁$畻
NavigateNode res_node = solution.astarSearch(start, end);
@@ -169,7 +169,7 @@
//鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈
public static Integer getXToNextDistance(NavigateNode xNode) {
NavigateMapData mapData = new NavigateMapData();
- List<List<MapNode>> lists = mapData.getJsonData(NavigationMapType.NONE.id, null);
+ List<List<MapNode>> lists = mapData.getJsonData(NavigationMapType.NONE.id, null, null);
if (lists != null) {
MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY());
if (mapNode != null) {
@@ -222,15 +222,31 @@
/**
* 鑾峰彇涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
*/
- public static Integer getMiddleToDistDistance(List<NavigateNode> path) {
- //涓棿璺緞
- NavigateNode middlePath = path.get(path.size() - 2);
- 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 void main(String[] args) {
//璁$畻璺緞
- List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id);
+ List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null);
System.out.println(calc);
System.out.println("------------------------");
// List<NavigateNode> calc = calc("0501401", "0201801", "out");
--
Gitblit v1.9.1