日常任务-07-技术-9.获取某一个地址的经纬度工具类

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);
			}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追梦者晓东

我是最不起眼的程序员阿东。感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值