amapKey需要自己申请,具体怎么申请网上有很多教程。
/**
* 经纬度转化为具体地点
* 参数格式:120.307499,31.576411 (经度,纬度)
* 120.307499,31.576411|117.320003,40.99195|107.320003,40.99195
* 正式环境替换掉{@link #amapKey}
*/
@ApiOperation(value = "经纬度转化为具体地点", notes = "经纬度转化为具体地点")
@ApiImplicitParam(paramType = "query", name = "points", value = "经纬度坐标 最多支持20个坐标点 多个点之间用\"|\"分割", required = true, dataType = "String")
@GetMapping("/pointsToLocations")
public ResultBean pointsToLocationsAll(@RequestParam String points) throws UnsupportedEncodingException {
logger.info("------ 经纬度转化为具体地点 pointsToLocations:{} start", points);
//将GPS坐标转化为高德地图坐标的URL后再去请求位置信息
String convertUrl = "https://restapi.amap.com/v3/assistant/coordinate/convert?locations="+ URLEncoder.encode(points,"UTF-8")+"&coordsys=gps&key="+amapKey;
JSONObject jsonObject = JSONObject.fromObject(HttpClientUtil.doGet(convertUrl));
String amapPoints = (String) jsonObject.get("locations");
String formattedAmapPoints = URLEncoder.encode(amapPoints.replaceAll(";", "|"), "UTF-8");
String locationUrl = "https://restapi.amap.com/v3/geocode/regeo?output=json&location="+formattedAmapPoints+"&key="+amapKey+"&radius=1000&batch=true";
JSONObject result = JSONObject.fromObject(HttpClientUtil.doGet(locationUrl));
logger.info("------ 经纬度转化为具体地点 pointsToLocations: end");
return ResultBean.ok().putDataValue(result);
}