java根据具体地址获取经纬度

那年仲夏 提交于 2020-01-15 18:54:53

java调用天地图API根据具体地址获取经纬度工具类

天地图注册地址,创建应用获取key,为何用天地图天地图免费不限次数

public class AddressUtil {

    private static final Logger log = LoggerFactory.getLogger(AddressUtil.class);

    public static  String getLatAndLngByAddr(String addr) {
        try {
            addr = addr.replace(" ", "").replace("#", "").replace("中国", "");
            String queryStr = "http://api.tianditu.gov.cn/geocoder?ds=%7B'keyWord':'" + addr + "'%7D&tk=" +
                    "在天地图申请的key";
            String info =  HttpClientUtil.doGet(queryStr);
            //Thread.sleep(10);
            if (StringUtils.isNotBlank(info)) {
                JSONObject resultJson = JSON.parseObject(info);
                log.error(">>>>>>>>>>>" + info + ">>>>>>>>>>>");
                if (!"无结果".equals(resultJson.get("msg"))) {
                    JSONObject locationObj = (JSONObject) resultJson.get("location");
                    //纬度
                    String lat = locationObj.get("lat") + "";
                    //经度
                    String lng = locationObj.get("lon") + "";
                    StringBuffer sbf = new StringBuffer();
                    sbf.append(lng).append(",").append(lat);
                    return sbf.toString();
                }
            }
            return "无";
        } catch (Exception e) {
        }
        return "无";
    }

    public static void main(String[] args) {
        System.out.println(getLatAndLngByAddr("中国上海闵行区元江路5500号第1幢C379室"));
    }

}

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!