From eb7a808aaf7dd0a6dd2ff70f9ef3f8ce0b1e31d1 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 22 五月 2026 18:27:32 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun
---
server/services/src/main/java/com/doumee/core/utils/geocode/MapUtil.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/core/utils/geocode/MapUtil.java b/server/services/src/main/java/com/doumee/core/utils/geocode/MapUtil.java
index 1bb318f..137d704 100644
--- a/server/services/src/main/java/com/doumee/core/utils/geocode/MapUtil.java
+++ b/server/services/src/main/java/com/doumee/core/utils/geocode/MapUtil.java
@@ -1,8 +1,10 @@
package com.doumee.core.utils.geocode;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.doumee.core.utils.Http;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@@ -24,6 +26,9 @@
/** 閫嗗湴鐞嗚В鏋� */
private static final String GEO_URL = "https://restapi.amap.com/v3/geocode/regeo";
+ /** 姝e悜鍦扮悊瑙f瀽 */
+ private static final String GEOCODE_URL = "https://restapi.amap.com/v3/geocode/geo";
+
/** 椹捐溅璺緞瑙勫垝 */
private static final String DRIVING_URL = "https://restapi.amap.com/v3/direction/driving";
@@ -36,6 +41,52 @@
}
/**
+ * 姝e悜鍦扮悊瑙f瀽 - 鏍规嵁鍦板潃鑾峰彇缁忕含搴�
+ *
+ * @param address 鍦板潃鏂囨湰锛堝"鍥涘窛鐪佹垚閮藉競"锛�
+ * @return "lat,lng" 鏍煎紡鐨勭粡绾害瀛楃涓诧紝瑙f瀽澶辫触杩斿洖 null
+ */
+ public static String geocode(String address) {
+ try {
+ String url = GEOCODE_URL
+ + "?key=" + amapKey
+ + "&address=" + URLEncoder.encode(address, "UTF-8");
+
+ log.info("楂樺痉鍦板浘姝e悜鍦扮悊瑙f瀽璇锋眰: address={}", address);
+
+ JSONObject json = new Http().build(url)
+ .setConnectTimeout(5000)
+ .setReadTimeout(10000)
+ .get()
+ .toJSONObject();
+
+ log.info("楂樺痉鍦板浘姝e悜鍦扮悊瑙f瀽鍝嶅簲: {}", json);
+
+ if (!"1".equals(json.getString("status"))) {
+ log.warn("楂樺痉鍦板浘姝e悜鍦扮悊瑙f瀽澶辫触: {}", json.getString("info"));
+ return null;
+ }
+
+ JSONArray geocodes = json.getJSONArray("geocodes");
+ if (geocodes == null || geocodes.isEmpty()) {
+ log.warn("楂樺痉鍦板浘姝e悜鍦扮悊瑙f瀽鏃犵粨鏋�: address={}", address);
+ return null;
+ }
+
+ String location = geocodes.getJSONObject(0).getString("location"); // lng,lat
+ if (StringUtils.isBlank(location)) {
+ return null;
+ }
+ String[] parts = location.split(",");
+ // 杞负 lat,lng 鏍煎紡
+ return parts[1] + "," + parts[0];
+ } catch (Exception e) {
+ log.error("楂樺痉鍦板浘姝e悜鍦扮悊瑙f瀽寮傚父: address={}", address, e);
+ return null;
+ }
+ }
+
+ /**
* 閫嗗湴鐞嗚В鏋� - 鏍规嵁缁忕含搴﹁幏鍙栧湴鍧�淇℃伅
* 楂樺痉鍧愭爣绯讳负 lng,lat锛堜笌鑵捐 lat,lng 鐩稿弽锛�
*
--
Gitblit v1.9.3