39 lines
1.4 KiB
Java
39 lines
1.4 KiB
Java
package com.zcloud.common.utils;
|
||
|
||
import com.alibaba.fastjson.JSONObject;
|
||
|
||
/**
|
||
* 百度地图工具类
|
||
*/
|
||
public class BaiduMapUtil {
|
||
// 需替换为实际的百度地图AK(从配置中心获取更佳)
|
||
private static final String BAIDU_AK = "OElqFYoKiAH8KFtph8ftLKF5NlNrbCUr";
|
||
|
||
/**
|
||
* 根据经纬度获取详细地址
|
||
* @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); // 注意百度坐标系是纬度在前
|
||
|
||
String response = HttpRequestUtil.doGet(url);
|
||
JSONObject result = JSONObject.parseObject(response);
|
||
|
||
if (result.getInteger("status") == 0) {
|
||
return result.getJSONObject("result")
|
||
.getString("formatted_address");
|
||
}
|
||
throw new RuntimeException("地址解析失败:" + result.getString("message"));
|
||
}
|
||
|
||
// 方法重载(默认使用wgs84坐标系)
|
||
public static String getAddressByLocation(double lng, double lat) throws Exception {
|
||
return getAddressByLocation(lng, lat, "wgs84ll");
|
||
}
|
||
}
|