• 使用Google Roads API抓取道路信息(java实现)


    Google Roads API提供了强大的道路获取接口,用户仅仅需调用对应的API就能够获取对应区域的道路坐标以及道路的限速信息。

    详细的调用方法例如以下:

    https://roads.googleapis.com/v1/snapToRoads?

    path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836
           
    &interpolate=true
           
    &key=API_KEY

    当中以“|”切割开的是经纬度坐标。假设将interpolate设置为true,则会返回平滑的路线信息。

    key的值须要替换为用户自己申请的key值。

    普通开发人员每天能够运行上述查询2500次。Java调用Roads API的代码例如以下:

    StringBuffer document = new StringBuffer();
            try {
                String str_url = "https://roads.googleapis.com/v1/snapToRoads?path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836&interpolate=true&key=YourKeyHere";
                URL url = new URL(str_url);//远程url
                URLConnection conn = url.openConnection();
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line = null;
                int line_number = 0;
                while ((line = reader.readLine()) != null) {
                    line_number += 1;
                    if (line.startsWith("        "latitude": ")) {
                        line = line.replaceAll("        "latitude": ", "");
                        document.append(line + " ");
                        System.out.print(line);
                    }
                    if (line.startsWith("        "longitude": ")) {
                        line = line.replaceAll("        "longitude": ", "");
                        document.append(line + " ");
                        System.out.println(line);
                    }
                }
                if (line_number < 20) {
                    System.out.println("error");
                }
                reader.close();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

    查询后的结果例如以下图所看到的:



  • 相关阅读:
    自由群(2)|完整版
    模1|同态
    交换代数笔记1|Atiyah,Chpt.1
    微分形式的几何第一章笔记
    矩阵群的一些简单习题1
    自由群1:基本概念
    代数的一些习题2|自由群与自由交换群
    蛤车1:两个习题,群作用与覆叠空间,N-S定理
    提升引理:唯一提升与同伦提升
    复变函数:复函数的空间与Montel定理
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5079627.html
Copyright © 2020-2023  润新知