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的值需要替换为用户自己申请的key值。普通开发者每天可以执行上述查询2500次。Java调用Roads API的代码如下:
&interpolate=true
&key=API_KEY
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(); }