其中url里的参数key值可以去高德地图官网注册申请。
public Map<String, String> getLongAndLatByAddress(String addr) {
String address = "";
try {
address = java.net.URLEncoder.encode(addr,"UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
//这里的key可以去高德地图官网申请
String url = "https://restapi.amap.com/v3/geocode/geo?address= " + address + "&output=JSON&key=" + "e15f1220c02ecbacc41c";
URL myURL = null;
URLConnection httpsConn;
try {
myURL = new URL(url);
} catch (MalformedURLException e) { e.printStackTrace(); }
StringBuffer sb = new StringBuffer();
try {
httpsConn = myURL.openConnection();
if (httpsConn != null) {
InputStreamReader inputStreamReader = new InputStreamReader(httpsConn.getInputStream(), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String data;
while ((data = bufferedReader.readLine()) != null) {
sb.append(data);
}
inputStreamReader.close();
}
} catch (IOException e) { e.printStackTrace(); }
Map<String, String> map = new HashMap<>();
JSONObject resultJson = JSON.parseObject(sb.toString());
//高德地图获取经纬度 json数据object和Array互换,用阿里的包com.alibaba.fastjson.JSON/JSONObject/JSONArray 记得导包
JSONArray geocodes = resultJson.getJSONArray("geocodes");
JSONObject jsonObject = geocodes.getJSONObject(0);
String location = jsonObject.getString("location");
//String district = jsonObject.getString("district"); //地区
String longitude = StringUtils.substringBefore(location, ",");
String latitude = StringUtils.substringAfter(location, ",");
map.put("longitude", longitude);
map.put("latitude", latitude);
return map;
}