百度地图API地理编码服务JAVA代码

public static String getLnglat(String address, String AMAPkey) {
        //"http://restapi.amap.com/v3/geocode/geo?address=上海市东方明珠&output=JSON&key=xxxxxxxxx";
        String geturl = "http://api.map.baidu.com/geocoding/v3/?address=" + address + "&output=json&ak=" + AMAPkey;
        String location = "";
        try {
            URL url = new URL(geturl);    // 把字符串转换为URL请求地址
            HttpURLConnection connection = (HttpURLConnection) url.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();// 断开连接
            JSONObject a = JSON.parseObject(sb.toString());
            //判断输入的位置点是否存在
            System.out.println(sb.toString());
            if (a.getJSONObject("result").size() > 0) {
                String lng = String.valueOf(a.getJSONObject("result").getJSONObject("location").get("lng"));
                String lat = String.valueOf(a.getJSONObject("result").getJSONObject("location").get("lat"));
                location = lng + "," + lat;
            }
            System.out.println(location);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("失败!");
        }
        return location;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中使用百度地图地理编码,可以通过调用百度地图API来实现。下面是一个简单的示例: ```java import com.alibaba.fastjson.JSONObject; 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.HttpClients; import org.apache.http.util.EntityUtils; import java.net.URLEncoder; public class BaiduMapGeoCoding { public static void main(String[] args) throws Exception { String address = "北京市海淀区上地十街10号"; String url = "http://api.map.baidu.com/geocoding/v3/?address=" + URLEncoder.encode(address, "UTF-8") + "&output=json&ak=你的AK"; CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(url); CloseableHttpResponse response = httpClient.execute(httpGet); String result = EntityUtils.toString(response.getEntity()); JSONObject json = JSONObject.parseObject(result); if (json.getInteger("status") == 0) { JSONObject location = json.getJSONObject("result").getJSONObject("location"); double lng = location.getDouble("lng"); double lat = location.getDouble("lat"); System.out.println("经度:" + lng + ",纬度:" + lat); } else { System.out.println("地理编码失败:" + json.getString("message")); } } } ``` 其中,`address`是要进行地理编码的地址,`ak`是在百度地图开放平台申请的访问密钥。执行该代码后,会输出该地址对应的经纬度信息。 需要注意的是,需要导入FastJsonHttpClient的相关依赖,同时需要进行异常处理。另外,在实际使用中,需要将AK替换成自己在百度地图开放平台申请的密钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值