diff --git a/pom.xml b/pom.xml
index 031e8d9..f7554ca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -224,12 +224,6 @@
${lombok.version}
-
- org.springframework
- spring-test
- 5.2.9.RELEASE
-
-
com.aliyun.oss
diff --git a/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java b/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java
index 65b8a0b..06715cf 100644
--- a/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java
+++ b/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java
@@ -2,6 +2,11 @@ package com.zcloud.common.utils;
import com.alibaba.fastjson.JSONObject;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
/**
* 百度地图工具类
*/
@@ -11,22 +16,23 @@ public class BaiduMapUtil {
/**
* 根据经纬度获取详细地址
- * @param lng 经度
- * @param lat 纬度
+ *
+ * @param lng 经度
+ * @param lat 纬度
* @param coordtype 坐标系类型(wgs84ll/gcj02等)
* @return 格式化地址
*/
public static String getAddressByLocation(double lng, double lat, String coordtype) throws Exception {
String url = String.format(
- "http://api.map.baidu.com/reverse_geocoding/v3/?ak=%s&output=json&coordtype=%s&location=%s,%s",
- BAIDU_AK, coordtype, lat, lng); // 注意百度坐标系是纬度在前
+ "http://api.map.baidu.com/reverse_geocoding/v3/?ak=%s&output=json&coordtype=%s&location=%s,%s",
+ BAIDU_AK, coordtype, lat, lng); // 注意百度坐标系是纬度在前
String response = HttpRequestUtil.doGet(url);
JSONObject result = JSONObject.parseObject(response);
if (result.getInteger("status") == 0) {
return result.getJSONObject("result")
- .getString("formatted_address");
+ .getString("formatted_address");
}
throw new RuntimeException("地址解析失败:" + result.getString("message"));
}
@@ -35,4 +41,79 @@ public class BaiduMapUtil {
public static String getAddressByLocation(double lng, double lat) throws Exception {
return getAddressByLocation(lng, lat, "wgs84ll");
}
+
+ /**
+ * 将WGS84坐标转换为BD09坐标
+ *
+ * @param lng 经度(WGS84)
+ * @param lat 纬度(WGS84)
+ * @return 转换后的BD09坐标数组 [经度, 纬度]
+ */
+ public static double[] convertWGS84ToBD09(double lng, double lat) throws Exception {
+ String url = String.format("%s?coords=%f,%f&from=1&to=5&ak=%s", "http://api.map.baidu.com/geoconv/v1/", lng, lat, BAIDU_AK);
+ String response = HttpRequestUtil.doGet(url);
+
+ if (response == null) {
+ throw new RuntimeException("调用百度坐标转换API失败");
+ }
+
+ JSONObject result = JSONObject.parseObject(response);
+ int status = result.getIntValue("status");
+
+ if (status != 0) {
+ throw new RuntimeException("坐标转换失败:" + result.getString("message"));
+ }
+
+ List