工具类
package com.juan.platform.common.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Strings;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
/**
* 功能描述: 高德地图工具类.
*
* @author zz
* @version 1.0
* @date 2019/5/30 12:00
*/
@Data
@Slf4j
public class AmapUtil {
// 经度
private String longitude;
// 纬度
private String latitude;
// 地址
private String address;
// 成功状态
private Boolean flag;
/**
* 功能描述: 根据地址获取经纬度信息.
*
* @param amap amap
* @return amap
* @author zz
* @date 2019/5/30 13:14
*/
public static AmapUtil addressToLocation(AmapUtil amap) {
String url = Constant.AMAP_GEO + "key=" + Constant.AMAP_APP_KEY + "&address=" + amap.getAddress();
String result = HttpUtil.httpRequest(url);
if (Strings.isNullOrEmpty(result)) {
amap.setFlag(Boolean.FALSE);
return amap;
}
JSONObject json = JSON.parseObject(result);
// status -- 返回值为 0 或 1,0 表示请求失败;1 表示请求成功。
if (json.getInteger("status") == 0) {
amap.setFlag(Boolean.FALSE);
return amap;
}
// geocodes -- 地理编码信息列表 结果对象列表,包括下述字段:
JSONObject geocodes = JSON.parseObject(json.getString("geocodes").substring(1, json.getString("geocodes").length() - 1));
// location -- 坐标点 经度,纬度
String[] locations = geocodes.getString("location").split(",");
amap.setLongitude(locations[0]);
amap.setLatitude(locations[1]);
amap.setFlag(Boolean.TRUE);
log.debug("执行根据地址获取经纬度信息操作");
return amap;
}
/**
* 功能描述: 测试.
*
* @param
* @return
* @author zz
* @date 2019/5/30 13:06
*/
public static void main(String[] args) {
AmapUtil amapUtil = new AmapUtil();
amapUtil.setAddress("陕西省西安市雁塔区科技路金桥国际C座");
amapUtil = addressToLocation(amapUtil);
System.out.println("状态--" + amapUtil.getFlag());
System.out.println("经度--" + amapUtil.getLongitude());
System.out.println("纬度--" + amapUtil.getLatitude());
System.out.println("原始地址--" + amapUtil.getAddress());
}
}
常量
public class Constant {
/**
* 功能描述: 高德地图参数-- 地理编码 API 服务地址.
*
* @param
* @return
* @author zz
* @date 2019/5/30 11:51
*/
public static final String AMAP_GEO = "https://restapi.amap.com/v3/geocode/geo?";
public static final String AMAP_APP_KEY = "5291db769cc4a783fa43733d0848747a";
}