From b9da8289051937fbbbd47bbda97414ad6c769a90 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期四, 18 七月 2024 14:37:00 +0800
Subject: [PATCH] feat: 代码重构

---
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
index 1235a71..4fcbc50 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
@@ -5,7 +5,11 @@
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.core.domain.Result;
 import com.ruoyi.common.core.enums.GaoDeEnum;
+import com.ruoyi.common.core.exception.GlobalException;
 import com.ruoyi.common.core.vo.GaoDeMap;
+import com.ruoyi.common.core.vo.Path;
+import com.ruoyi.common.core.vo.PolylineData;
+import com.ruoyi.common.core.vo.Steps;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -13,6 +17,10 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author HJL
@@ -22,9 +30,7 @@
     /**
      * 功能描述: 高德地图Key
      */
-    private static final String GAO_DE_KEY = "3f00f94b6e9f470a5c6f510c3df814ea";
-
-    //申请的账户Key
+    private static final String GAO_DE_KEY = "37331f325a4f4ea25bc0d4e1900a1730";
 
     /**
      * 功能描述: 根据地址名称得到两个地址间的距离
@@ -32,7 +38,6 @@
      * @param start 起始位置
      * @param end   结束位置
      * @return long 两个地址间的距离
-     * @author isymikasan
      */
     public static Long getDistanceByAddress(String start, String end) {
         String startLonLat = getLonLat(start).getDatas();
@@ -155,7 +160,7 @@
      * @param destination 目的地经纬度
      * @return 路线规划信息
      */
-    public static Object routing(String origin, String destination) {
+    public static Path routing(String origin, String destination) {
         String baseUrl = "https://restapi.amap.com/v3/direction/driving?origin=%s&destination=%s" +
                 "&extensions=all&output=json&key=%s";
         String requestUrl = String.format(baseUrl, origin, destination, GAO_DE_KEY);
@@ -170,11 +175,28 @@
                 json.append(inputLine);
             }
             in.close();
-        } catch (IOException ignored) {
+        } catch (IOException e) {
+            throw new GlobalException("获取路线规划失败!");
         }
         String data = json.toString();
         GaoDeMap gaoDeMap = JSONObject.parseObject(data, GaoDeMap.class);
-        return gaoDeMap.getRoute().getPaths().get(0);
+        Path path = gaoDeMap.getRoute().getPaths().get(0);
+        List<Steps> steps = path.getSteps();
+        for (Steps step : steps) {
+            // 经纬度地址指向
+            List<PolylineData> polylineDataList = new ArrayList<>();
+            String polyline = step.getPolyline();
+            List<String> list = Arrays.stream(polyline.split(";")).collect(Collectors.toList());
+            for (String s : list) {
+                String[] split = s.split(",");
+                // 经纬度
+                String longitude = split[0];
+                String latitude = split[1];
+                polylineDataList.add(new PolylineData(longitude, latitude));
+            }
+            step.setPolylineList(polylineDataList);
+        }
+        return path;
     }
 
 }
\ No newline at end of file

--
Gitblit v1.7.1