使用Java语言基于百度地图进行逆地理编码

基于百度地图api进行开发,做了一个小练习,输入经纬度坐标,可以逆向输出地理名称。
url中的ak(开发者秘钥)可以用自己的百度账号去申请,我自己的直接贴上去了。

package com.lly.demo.controller;

import com.alibaba.fastjson.JSON;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class BaiduMapGeocode {
    public static void main(String[] args) {
        String lng="31.225696563611";
        String lat="121.49884033194";
        reverseGeocode(lng,lat);
    }

public static String reverseGeocode(String lng,String lat){
    String location=lng+","+lat;
    String url="http://api.map.baidu.com/reverse_geocoding/v3/?ak=OTlpF4n8haTK4VH5dQ25tVMjGGAUAFd9&output=json&coordtype=wgs84ll&location="+location;
    System.out.println(url);
    String res=doGet(url);
    String Addresslocation= JSON.parseObject(res).getJSONObject("result").getString("formatted_address");
    System.out.println(Addresslocation);
    return Addresslocation;
}

public static String doGet(String url){
     //创建一个Http客户端
    CloseableHttpClient httpClient= HttpClientBuilder.create().build();
    //创建一个get请求
    HttpGet httpGet=new HttpGet(url);
    //响应模型
    CloseableHttpResponse response=null;
    try {
        //由客户端发送get请求
        response=httpClient.execute(httpGet);
        //从响应模型中获取响应实体
        HttpEntity responseEntity=response.getEntity();
        if (responseEntity!=null){
            return EntityUtils.toString(responseEntity);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }finally {
            try {
                if(httpClient!=null){
                httpClient.close();
                }
                if (response!=null){
                    response.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

    }
    return null;
}
}

输出结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值