From fd047fa7234dc11643dab8ecbf38e8d7a8ba0854 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 22 十一月 2025 23:48:12 +0800
Subject: [PATCH] feat:修改任务

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/VehicleGpsController.java |   62 +++++++++++++++++++------------
 1 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/VehicleGpsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/VehicleGpsController.java
index b67fb67..188657d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/VehicleGpsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/VehicleGpsController.java
@@ -762,8 +762,7 @@
             
             // 鏋勫缓澶╁湴鍥惧湴鐞嗙紪鐮丄PI URL
             String url = "http://api.tianditu.gov.cn/geocoder";
-            String params = "ds={\"keyWord\":\"" + address + \"}" +
-                           "&tk=" + tiandituMapConfig.getTk();
+            String params = "ds={\"keyWord\":\"" + address + "\"}&tk=" + tiandituMapConfig.getTk();
             
             logger.info("澶╁湴鍥惧湴鐞嗙紪鐮佽姹�: address={}", address);
             
@@ -943,7 +942,7 @@
             
             // 绗竴姝ワ細璧风偣鍦板潃杞潗鏍�
             String geocodingUrl1 = "http://api.tianditu.gov.cn/geocoder";
-            String geocodingParams1 = "ds={\"keyWord\":\"" + fromAddress + \"}" +
+            String geocodingParams1 = "ds={\"keyWord\":\"" + fromAddress + "\"}" +
                                      "&tk=" + tiandituMapConfig.getTk();
             
             String geocodingResponse1 = HttpUtils.sendGet(geocodingUrl1, geocodingParams1);
@@ -965,7 +964,7 @@
             
             // 绗簩姝ワ細缁堢偣鍦板潃杞潗鏍�
             String geocodingUrl2 = "http://api.tianditu.gov.cn/geocoder";
-            String geocodingParams2 = "ds={\"keyWord\":\"" + toAddress + \"}" +
+            String geocodingParams2 = "ds={\"keyWord\":\"" + toAddress + "\"}" +
                                      "&tk=" + tiandituMapConfig.getTk();
             
             String geocodingResponse2 = HttpUtils.sendGet(geocodingUrl2, geocodingParams2);
@@ -1056,9 +1055,9 @@
     @GetMapping("/tianditu/place/suggestion")
     public AjaxResult tiandituPlaceSuggestion(String keyWord, String region, String city, Integer count) {
         try {
-            // 妫�鏌ュ弬鏁�
+            // 妫�鏌ュ繀闇�鍙傛暟
             if (keyWord == null || keyWord.trim().isEmpty()) {
-                return AjaxResult.error("鍙傛暟涓嶅畬鏁达紝缂哄皯鎼滅储鍏抽敭璇�");
+                return AjaxResult.error("鍙傛暟涓嶅畬鏁达紝缂哄皯鎼滅储鍏抽敭璇�(keyWord)");
             }
             
             // 璁剧疆榛樿鍊�
@@ -1066,38 +1065,50 @@
                 count = 10;
             }
             
-            // 鏋勫缓澶╁湴鍥捐緭鍏ユ彁绀篈PI URL
-            String url = "http://api.tianditu.gov.cn/search";
+            // 鏋勫缓澶╁湴鍥炬櫘閫氭悳绱PI URL
+            String url = "http://api.tianditu.gov.cn/v2/search";
             StringBuilder paramsBuilder = new StringBuilder();
             paramsBuilder.append("postStr={\"keyWord\":\"").append(keyWord).append("\"");
+            // 纭紪鐮佷腑鍥藉湴鍥捐寖鍥�
+            paramsBuilder.append(",\"mapBound\":\"").append("73.66,3.86,135.05,53.55").append("\"");
+            // 榛樿绾у埆涓�18
+            paramsBuilder.append(",\"level\":\"").append("18").append("\"");
+            // 榛樿鏌ヨ绫诲瀷涓烘櫘閫氭悳绱�
+            paramsBuilder.append(",\"queryType\":\"").append("1").append("\"");
+            // 榛樿璧峰浣嶇疆涓�0
+            paramsBuilder.append(",\"start\":\"").append("0").append("\"");
+            paramsBuilder.append(",\"count\":\"").append(count).append("\"");
+            
+            // 娣诲姞鍙�夊弬鏁�
             if (region != null && !region.trim().isEmpty()) {
-                paramsBuilder.append(",\"region\":\"").append(region).append("\"");
+                paramsBuilder.append(",\"specify\":\"").append(region).append("\"");
             }
             if (city != null && !city.trim().isEmpty()) {
-                paramsBuilder.append(",\"city\":\"").append(city).append("\"");
+                paramsBuilder.append(",\"dataTypes\":\"").append(city).append("\"");
             }
-            paramsBuilder.append(",\"count\":\"").append(count).append("\"");
-            paramsBuilder.append("}" );
-            paramsBuilder.append("&type=suggest");
+            
+            paramsBuilder.append("}");
+            paramsBuilder.append("&type=query");
             paramsBuilder.append("&tk=").append(tiandituMapConfig.getTk());
             
             String params = paramsBuilder.toString();
             
-            logger.info("澶╁湴鍥捐緭鍏ユ彁绀鸿姹�: keyWord={}, region={}", keyWord, region);
+            logger.info("澶╁湴鍥炬櫘閫氭悳绱㈣姹�: keyWord={}, count={}", keyWord, count);
+            logger.debug("鍦板浘璇锋眰鎺ュ彛鍙傛暟锛歿}", params);
             
             // 鍙戦�丠TTP璇锋眰
             String response = HttpUtils.sendGet(url, params);
-            logger.debug("澶╁湴鍥捐緭鍏ユ彁绀哄搷搴�: {}", response);
+            logger.debug("澶╁湴鍥炬櫘閫氭悳绱㈠搷搴�: {}", response);
             
             // 瑙f瀽鍝嶅簲
             com.alibaba.fastjson2.JSONObject jsonResponse = com.alibaba.fastjson2.JSONObject.parseObject(response);
             if (!"0".equals(jsonResponse.getString("status"))) {
-                logger.error("杈撳叆鎻愮ず澶辫触: {}", response);
+                logger.error("鏅�氭悳绱㈠け璐�: {}", response);
                 return AjaxResult.error("鍦板潃鎼滅储澶辫触");
             }
             
-            // 鎻愬彇鎻愮ず鍒楄〃
-            com.alibaba.fastjson2.JSONArray results = jsonResponse.getJSONArray("suggests");
+            // 鎻愬彇鎼滅储缁撴灉
+            com.alibaba.fastjson2.JSONArray results = jsonResponse.getJSONArray("pois");
             if (results == null || results.isEmpty()) {
                 logger.info("鏈壘鍒板尮閰嶇殑鍦板潃");
                 return AjaxResult.success("鏌ヨ鎴愬姛", new ArrayList<>());
@@ -1110,13 +1121,16 @@
                 
                 Map<String, Object> suggestion = new HashMap<>();
                 suggestion.put("name", item.getString("name")); // 鍚嶇О
-                suggestion.put("address", item.getString("address")); // 鍦板潃
-                suggestion.put("province", item.getString("province")); // 鐪�
+                suggestion.put("address", item.getString("addr")); // 鍦板潃
+                suggestion.put("province", item.getString("prov")); // 鐪�
                 suggestion.put("city", item.getString("city")); // 甯�
-                suggestion.put("district", item.getString("district")); // 鍖�
+                suggestion.put("district", item.getString("county")); // 鍖哄幙
+                suggestion.put("tel", item.getString("tel")); // 鐢佃瘽
+                suggestion.put("postcode", item.getString("postcode")); // 閭紪
+                suggestion.put("type", item.getString("type")); // 绫诲瀷
                 
                 // 缁忕含搴︿俊鎭�
-                com.alibaba.fastjson2.JSONObject location = item.getJSONObject("location");
+                com.alibaba.fastjson2.JSONObject location = item.getJSONObject("lonlat");
                 if (location != null) {
                     Map<String, Object> locationMap = new HashMap<>();
                     locationMap.put("lon", location.getDouble("lon"));
@@ -1127,10 +1141,10 @@
                 suggestions.add(suggestion);
             }
             
-            logger.info("鍦板潃鎼滅储鎻愮ず鎴愬姛: 鎵惧埌{}鏉$粨鏋�", suggestions.size());
+            logger.info("鍦板潃鎼滅储鎴愬姛: 鎵惧埌{}鏉$粨鏋�", suggestions.size());
             return AjaxResult.success("鏌ヨ鎴愬姛", suggestions);
         } catch (Exception e) {
-            logger.error("鍦板潃鎼滅储鎻愮ず澶辫触", e);
+            logger.error("鍦板潃鎼滅储澶辫触", e);
             return AjaxResult.error("鍦板潃鎼滅储澶辫触锛�" + e.getMessage());
         }
     }

--
Gitblit v1.9.1