首页 > 编程语言 >【JAVA】JAVA后台调用百度地图API进行坐标转换

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

时间:2023-07-04 14:33:06浏览次数:40  
标签:JAVA String rd API urlconn new null 百度 out

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")};
    }

标签:JAVA,String,rd,API,urlconn,new,null,百度,out
From: https://www.cnblogs.com/xhltk316/p/17525677.html

相关文章

  • java爬虫如何使用动态代理ip
      在进行网络爬虫开发时,使用动态IP代理是保护自己的隐私、绕过访问限制和提高爬虫稳定性的重要技术。下面呢是一个简单的Java爬虫动态IP代理教程,用来帮助大家实现动态切换IP地址。1.寻找可靠的代理服务提供商 在开始之前,您需要找到一个可靠的代理服务提供商,他们将提供动态I......
  • java http大文件断点续传上传控件
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"e......
  • web开发基础笔录(5)-Javascript(1)
    目录概述概述JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。......
  • api接口技术开发心得,获取1688淘宝商品详情数据,数据采集调用教程
    ​ 商品详情API接口的作用和重要性主要体现在以下几个方面:获取详细商品信息:商品详情API接口提供了获取1688和淘宝商品的完整详细信息的功能。这包括商品名称、价格、库存、规格、描述、图片、运费等。这些详细信息对于用户来说是购买决策的重要依据。提供用户购物体验:通......
  • 开发软件 --- java web 容器
    JavaWeb容器是一种运行JavaWeb应用程序的环境,提供对Servlet和JSP等技术的类库支持。以下是一些常见的JavaWeb容器:轻量级 ApacheTomca流行的开源轻量部分支持的javaweb容器。支持Servlet、JSP和WebSocket等技术。Jetty高性能的开源轻量部分支持的java......
  • java使用枚举消除 if/else
    有这样一个判断场景。if("dog".equals(animalType)){System.out.println("吃骨头");}elseif("cat".equals(animalType)){System.out.println("吃鱼干");}elseif("sheep"){System.out.println("吃草");......
  • java动态编译
        packagesrc;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.BufferedReader;importjavax.tools.JavaCompiler;importjavax.tools.ToolProvider;publicclassDemo01{ publicstaticvoidm......
  • Java JUI编程
    前言初学,虽然不常用了,但对于理解MVC很有帮助,顺带学一下把。1.简介核心技术是SwingAwt(Awt是Swing前身)需要学:窗口,弹窗,面板,文本框,列表框,按钮,图片,监听事件,鼠标,键盘。2.AWT2.1窗口Framenew一个Frame可以实现,也可以通过继承封装。publicclassMyFrameextendsFrame......
  • Java方法
    Java方法什么是方法1.方法是语句的集合2.设计方法的原则一个方法就做一件事方法的定义和调用修饰符返回值类型方法名(参数类型参数名){...方法体...return返回值}方法的重载1.同样的方法名通过调整参数的数量类型进行重载(跟返回值类型无关)、2.按......
  • 2023春招面试题:Java并发相关知识
    1.基础知识回顾1.1什么是多线程?在没有线程的年代,在同一个进程中,程序的处理流程都是顺序的,下一个流程的开始必须等待上一个流程的结束,如果其中某一个流程非常耗时,那么会影响整个流程的处理时间cpu执行过程中并不是一个程序执行完之后cpu才切换,cpu时间片用完,就会切换到下个线程......