标签:
Google Roads API提供了强大的道路获取接口,用户仅仅需调用对应的API就能够获取对应区域的道路坐标以及道路的限速信息。
详细的调用方法例如以下:
https://roads.googleapis.com/v1/snapToRoads?当中以“|”切割开的是经纬度坐标。假设将interpolate设置为true,则会返回平滑的路线信息。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
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(); }
使用Google Roads API抓取道路信息(java实现)
标签:
原文地址:http://www.cnblogs.com/lcchuguo/p/5079627.html