import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class GetLngAndLag {
public static final String KEY = "27539ad861107d9d04ce63a10c111153";
public static final String URL = "https://restapi.amap.com/v3/geocode/geo?address=";
public static String getLngAndLag(String address) throws UnsupportedEncodingException {
address = address.trim();
String url = URL + URLEncoder.encode(address, "utf-8") + "&output=JSON" + "&key="+ KEY;
try {
URL url2 = new URL(url); // 把字符串转换为URL请求地址
HttpURLConnection connection = (HttpURLConnection) url2.openConnection();// 打开连接
connection.connect();// 连接会话
// 获取输入流
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {// 循环读取流
sb.append(line);
}
br.close();// 关闭流
connection.disconnect();// 断开连接
System.out.println("sb=="+sb.toString());
JSONObject a = JSON.parseObject(sb.toString());
JSONArray sddressArr = JSON.parseArray(a.get("geocodes").toString());
JSONObject c = JSON.parseObject(sddressArr.get(0).toString());
String location = c.get("location").toString();
return location;
} catch (Exception e) {
e.printStackTrace();
System.out.println("失败!");
}
return null;
}
public static void main(String[] args) {
try {
getLngAndLag("杭州市滨江区长河街道网商路599号4幢101室");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
----------------------------------------------------------------------------------
//获取入参-地址-用于获取经纬度-ss为for循环遍历中的实体-此处省略
String address= ss.getAddress();
//调用方法 String lngAndLag = getLngAndLag(address);
if(address!=null && !address.equals("")){
try {
//调用方法获取经纬度字段-lngAndLag
lngAndLag = getLngAndLag(address);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
if(lngAndLag!=null && !lngAndLag.equals("") ){
String[] str = lngAndLag.split(",");
if(str.length==2){
//方法返回的是一个字段lngAndLag ,需要拆分成经纬度-jd、wd 两个字段
jd = str[0];
wd = str[1];
}
ss.setJd(jd);
ss.setWd(wd);
}
日常任务-07-技术-9.获取某一个地址的经纬度工具类
最新推荐文章于 2023-11-09 12:08:15 发布