From 2f0c77e7d871a1119d6cb143721bd920a6850e93 Mon Sep 17 00:00:00 2001 From: vincentlu <t1341870251@gmail.com> Date: 星期四, 27 三月 2025 09:59:40 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java | 53 +++++++++++++++++++++++++---------------------------- 1 files changed, 25 insertions(+), 28 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java index 45604bd..b7c7104 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java @@ -1,18 +1,30 @@ package com.zy.acs.manager.common.utils; import com.alibaba.fastjson.JSON; -import com.zy.acs.manager.core.service.astart.WaveNodeType; import com.zy.acs.framework.common.Cools; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; +import java.util.*; /** * Created by vincent on 8/7/2024 */ public class MapDataUtils { + + public static Double[][][] preComputeCdaMatrix(String[][] cdaStrMatrix) { + int rows = cdaStrMatrix.length; + int cols = cdaStrMatrix[0].length; + + Double[][][] cdaMatrix = new Double[rows][cols][2]; + for (int i = 0; i < rows; i++) { + for (int j = 0; j < cols; j++) { + List<Double> cda = MapDataUtils.parseCdaNode(cdaStrMatrix[i][j]); + cdaMatrix[i][j][0] = cda.get(0); + cdaMatrix[i][j][1] = cda.get(1); + } + } + + return cdaMatrix; + } public static List<String> parseWaveNode(String waveNodeStr) { List<String> waveNodeList = new ArrayList<>(); @@ -23,9 +35,8 @@ } public static List<Double> parseCdaNode(String cdaNodeStr) { - List<Double> waveNodeList = new ArrayList<>(); if (Cools.isEmpty(cdaNodeStr)) { - return waveNodeList; + return new ArrayList<>(); } return JSON.parseArray(cdaNodeStr, Double.class); } @@ -38,33 +49,19 @@ return list; } - public static List<String> hasIntersection(List<String> l0, List<String> l1) { - if (Cools.isEmpty(l0, l1)) { - return new ArrayList<>(); - } - return l0.stream().filter(l1::contains).collect(Collectors.toList()); - } - public static String generateWaveNode(String originStr, String waveNode) { - List<String> waveNodeList; - if (originStr.equals(WaveNodeType.ENABLE.val)) { - waveNodeList = new ArrayList<>(); - waveNodeList.add(waveNode); - } else { - waveNodeList = JSON.parseArray(originStr, String.class); - if (!waveNodeList.contains(waveNode)) { - waveNodeList.add(waveNode); - } - } - return JSON.toJSONString(waveNodeList); + List<String> originNode = JSON.parseArray(originStr, String.class); + Set<String> set = new HashSet<>(originNode); + set.add(waveNode); + return JSON.toJSONString(set); } - public static Double getVehicleWaveSafeDistance(Integer diameter, Double coe) { + public static Double getVehicleWaveSafeDistance(Integer diameter, Double factor) { if (Cools.isEmpty(diameter)) { return 0.0D; } - coe = Optional.ofNullable(coe).orElse(1.0D); - return diameter * coe; + factor = Optional.ofNullable(factor).orElse(1.0D); + return diameter * factor; } } -- Gitblit v1.9.1