【JAVA】JAVA后台调用百度地图API进行坐标转换

该代码段展示了如何使用Java调用百度地图API进行坐标转换,从经纬度114.21892734521,29.575429778924转换到其他坐标系,并返回转换后的坐标。它涉及HTTPPOST请求、设置请求参数和处理JSON响应。
摘要由CSDN通过智能技术生成
import com.alibaba.fastjson.*
import ……
// coords: '114.21892734521,29.575429778924'
// return: ['114.2307519546763', '29.57908428837437']
// 可以传入多个点,详见 https://lbsyun.baidu.com/faq/api?title=webapi/guide/changeposition-base#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81
public static String[] transCoords(String coords) throws Exception {

        String ak = "***";

        String dest_url = "http://api.map.baidu.com/geoconv/v1/?coords=" + coords + "&from=1&to=5&output=json&ak=" + ak;

        String commString = "";
        String rec_string = "";
        URL url = null;
        HttpURLConnection urlconn = null;
        OutputStream out = null;
        BufferedReader rd = null;
        try {
            url = new URL(dest_url);
            urlconn = (HttpURLConnection) url.openConnection();
            urlconn.setReadTimeout(1000 * 30);
            // urlconn.setRequestProperty("content-type", "text/html;charset=UTF-8");
            urlconn.setRequestMethod("POST");
            urlconn.setDoInput(true);
            urlconn.setDoOutput(true);
            out = urlconn.getOutputStream();
            out.write(commString.getBytes("UTF-8"));
            out.flush();
            out.close();
            rd = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
            StringBuffer sb = new StringBuffer();
            int ch;
            while ((ch = rd.read()) > -1)
                sb.append((char) ch);
            rec_string = sb.toString();
        } catch (Exception e) {
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (urlconn != null) {
                    urlconn.disconnect();
                }
                if (rd != null) {
                    rd.close();
                }
            } catch (Exception e) {
            }
        }
        JSONObject res = JSONObject.parseObject(rec_string).getJSONArray("result").getJSONObject(0);
        return new String[]{res.getString("x"), res.getString("y")};
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值