From c96fbe6b0aeb413a17c429133ee6d81d138144b9 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 09 六月 2026 10:58:52 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/AmapWalkingRouteUtil.java | 53 +++++++++++++++++++++++++----------------------------
1 files changed, 25 insertions(+), 28 deletions(-)
diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/AmapWalkingRouteUtil.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/AmapWalkingRouteUtil.java
index c6b3e71..78f49e3 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/AmapWalkingRouteUtil.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/AmapWalkingRouteUtil.java
@@ -8,12 +8,13 @@
import com.xiaopeng.api.vo.map.PointByIpVo;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.HttpUtils;
+import com.xiaopeng.map.config.MapApiConfigHolder;
+import com.xiaopeng.map.config.MapApiProperties;
import com.xiaopeng.map.constant.I18nKeyConstant;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
-import org.springframework.beans.factory.annotation.Value;
import java.io.IOException;
import java.util.HashMap;
@@ -26,29 +27,20 @@
@Slf4j
public class AmapWalkingRouteUtil {
- // 高德地图Web服务API配置
- private static final String AMAP_API_BASE_URL = "https://restapi.amap.com/v3/direction/walking";
- private static final String AMAP_GEOCODING_URL = "https://restapi.amap.com/v3/geocode/geo";
- // 高德API基础URL
- private static final String IP_API_URL = "https://restapi.amap.com/v3/ip";
- private static final String GEOCODE_API_URL = "https://restapi.amap.com/v3/geocode/geo";
-
-
// HTTP客户端
private final OkHttpClient httpClient;
private final ObjectMapper objectMapper;
- // @Value("${map.apikey}")
- private static String apiKey="66ae577f63898dae3016d599fda57221";
+ private static String apiKey;
/**
* IP定位
*/
public static PointByIpVo ipLocation(String ip) throws IOException {
PointByIpVo pointByIpVo = new PointByIpVo();
- StringBuilder urlBuilder = new StringBuilder(IP_API_URL)
- .append("?key=").append(apiKey)
+ StringBuilder urlBuilder = new StringBuilder(getMapProperties().getUrls().getIp())
+ .append("?key=").append(getApiKey())
.append("&output=json");
if (ip != null && !ip.trim().isEmpty()) {
@@ -99,7 +91,7 @@
}
private static LonLatDto geocodeCity(String cityName) throws IOException {
- String url = GEOCODE_API_URL + "?key=" +apiKey + "&address=" + cityName + "&output=json&city=" + cityName;
+ String url = getMapProperties().getUrls().getGeocode() + "?key=" + getApiKey() + "&address=" + cityName + "&output=json&city=" + cityName;
String response = HttpUtils.sendGet(url);
System.out.println(response);
JSONObject jsonObject = JSONObject.parseObject(response);
@@ -120,18 +112,12 @@
return new LonLatDto(longitude, latitude);
}
- public static void main (String[]args) throws IOException {
- geocodeCity("凉山彝族自治州");
-
- }
-
-
/**
* 构造函数
* @param apiKey 高德地图API Key
*/
public AmapWalkingRouteUtil(String apiKey) {
- this.apiKey = apiKey;
+ AmapWalkingRouteUtil.apiKey = apiKey;
this.httpClient = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
@@ -259,10 +245,10 @@
*/
public Location getLocationByAddress (String address) throws IOException {
Map<String, String> params = new HashMap<>();
- params.put("key", apiKey);
+ params.put("key", getApiKey());
params.put("address", address);
- String url = buildUrl(AMAP_GEOCODING_URL, params);
+ String url = buildUrl(getMapProperties().getUrls().getGeocode(), params);
Request request = new Request.Builder().url(url).build();
try (Response response = httpClient.newCall(request).execute()) {
@@ -299,11 +285,11 @@
try {
Map<String, String> params = new HashMap<>();
- params.put("key", apiKey);
+ params.put("key", getApiKey());
params.put("origin", origin.toString());
params.put("destination", destination.toString());
- String url = buildUrl(AMAP_API_BASE_URL, params);
+ String url = buildUrl(getMapProperties().getUrls().getWalking(), params);
Request request = new Request.Builder().url(url).build();
try (Response response = httpClient.newCall(request).execute()) {
@@ -368,10 +354,10 @@
private String getAddressByLocation (Location location){
try {
Map<String, String> params = new HashMap<>();
- params.put("key", apiKey);
+ params.put("key", getApiKey());
params.put("location", location.toString());
- String url = buildUrl("https://restapi.amap.com/v3/geocode/regeo", params);
+ String url = buildUrl(getMapProperties().getUrls().getReverseGeocode(), params);
Request request = new Request.Builder().url(url).build();
try (Response response = httpClient.newCall(request).execute()) {
@@ -430,5 +416,16 @@
return earthRadius * c;
}
+ private static MapApiProperties getMapProperties() {
+ return MapApiConfigHolder.getProperties();
+ }
- }
\ No newline at end of file
+ private static String getApiKey() {
+ if (apiKey != null) {
+ return apiKey;
+ }
+ return getMapProperties().getApiKey();
+ }
+
+
+ }
--
Gitblit v1.7.1