|
@@ -70,45 +70,46 @@ public class ProvinceUtils {
|
|
|
//将GPS坐标转化为高德地图坐标的URL后再去请求位置信息
|
|
|
try {
|
|
|
points = URLEncoder.encode(points,"UTF-8");
|
|
|
- } catch (UnsupportedEncodingException e) {
|
|
|
- throw new RuntimeException(e.getMessage());
|
|
|
- }
|
|
|
- String convertUrl =
|
|
|
- "https://restapi.amap.com/v3/assistant/coordinate/convert?locations="+points+"&coordsys=gps&key="+amapKey;
|
|
|
- //GPS坐标转为高德地图坐标
|
|
|
- String s = HttpUtil.get(convertUrl);
|
|
|
- JSONObject jsonObject = JSON.parseObject(s);
|
|
|
- String status = (String) jsonObject.get("status");
|
|
|
- if(Objects.equals(status,"0")){
|
|
|
- throw new RuntimeException("远程调用经纬度转化出错");
|
|
|
- }
|
|
|
- String locations = (String) jsonObject.get("locations");
|
|
|
- String formattedAmapPoints = null;
|
|
|
- try {
|
|
|
- formattedAmapPoints = URLEncoder.encode(locations.replaceAll(";", "|"), "UTF-8");
|
|
|
- } catch (UnsupportedEncodingException e) {
|
|
|
- throw new RuntimeException(e.getMessage());
|
|
|
- }
|
|
|
- String locationUrl = "https://restapi.amap.com/v3/geocode/regeo?output=json&location="+formattedAmapPoints+"&key="+amapKey+"&radius=1000&batch=true";
|
|
|
- String s1 = HttpUtil.get(locationUrl);
|
|
|
- System.out.println(s1);
|
|
|
- //获取转地址后的结果
|
|
|
- JSONObject parseObject = JSON.parseObject(s1);
|
|
|
- String status1 = (String) parseObject.get("status");
|
|
|
- if(Objects.equals(status1,"0")){
|
|
|
- throw new RuntimeException("根据经纬度获取具体地址出错");
|
|
|
- }
|
|
|
- JSONArray regeocodes = parseObject.getJSONArray("regeocodes");
|
|
|
- String formattedAddress = "";
|
|
|
- AddressComponent addressComponent = null;
|
|
|
- for (Object regeocode : regeocodes) {
|
|
|
- JSONObject object = (JSONObject) regeocode;
|
|
|
- formattedAddress = (String)object.get("formatted_address");
|
|
|
- String addressComponentStr = (String)object.get("addressComponent");
|
|
|
- addressComponent = JSONObject.parseObject(addressComponentStr, AddressComponent.class);
|
|
|
+ String convertUrl =
|
|
|
+ "https://restapi.amap.com/v3/assistant/coordinate/convert?locations="+points+"&coordsys=gps&key="+amapKey;
|
|
|
+ //GPS坐标转为高德地图坐标
|
|
|
+ String s = HttpUtil.get(convertUrl);
|
|
|
+ JSONObject jsonObject = JSON.parseObject(s);
|
|
|
+ String status = (String) jsonObject.get("status");
|
|
|
+ if(Objects.equals(status,"0")){
|
|
|
+ throw new RuntimeException("远程调用经纬度转化出错");
|
|
|
+ }
|
|
|
+ String locations = (String) jsonObject.get("locations");
|
|
|
+ String formattedAmapPoints = null;
|
|
|
+ try {
|
|
|
+ formattedAmapPoints = URLEncoder.encode(locations.replaceAll(";", "|"), "UTF-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ throw new RuntimeException(e.getMessage());
|
|
|
+ }
|
|
|
+ String locationUrl = "https://restapi.amap.com/v3/geocode/regeo?output=json&location="+formattedAmapPoints+"&key="+amapKey+"&radius=1000&batch=true";
|
|
|
+ String s1 = HttpUtil.get(locationUrl);
|
|
|
+ System.out.println(s1);
|
|
|
+ //获取转地址后的结果
|
|
|
+ JSONObject parseObject = JSON.parseObject(s1);
|
|
|
+ String status1 = (String) parseObject.get("status");
|
|
|
+ if(Objects.equals(status1,"0")){
|
|
|
+ throw new RuntimeException("根据经纬度获取具体地址出错");
|
|
|
+ }
|
|
|
+ JSONArray regeocodes = parseObject.getJSONArray("regeocodes");
|
|
|
+ String formattedAddress = "";
|
|
|
+ AddressComponent addressComponent = null;
|
|
|
+ for (Object regeocode : regeocodes) {
|
|
|
+ JSONObject object = (JSONObject) regeocode;
|
|
|
+ formattedAddress = (String)object.get("formatted_address");
|
|
|
+ JSONObject jsonObject1 = (JSONObject) object.get("addressComponent");
|
|
|
+ addressComponent = JSONObject.toJavaObject(jsonObject1, AddressComponent.class);
|
|
|
+ }
|
|
|
+ log.info("经纬度【{}】转化为具体地点【{}】",points,formattedAddress);
|
|
|
+ return addressComponent;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("经纬度转换错误error:{}",e);
|
|
|
}
|
|
|
- log.info("经纬度【{}】转化为具体地点【{}】",points,formattedAddress);
|
|
|
- return addressComponent;
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
}
|