高德地图在取两点间的距离比百度地图更详细,可以分为几种类型的API,提供的步行、公交、驾车查询。今天咱们使用驾车的API来计算两点的距离。其它的API大同小异。
参考高德地图的API地址:路径规划-API文档-开发指南-Web服务 API | 高德地图API
注意关键字是:路径规划。
这是实际可用的代码。
public static double distanceCalculationSite(String start, String end) {
BufferedReader in = null;
//高德地图KEY
String url = "https://restapi.amap.com/v3/direction/driving";
String ak = "替换成你的key";
//发型不能乱,如果参数顺序有错误,可能会得到20000的错误,参数错误
String output = "json";
url = url+"?origin="+start+"&destination="+end+"&extensions=all"+"&output="+output+"&key="+ak;
try {
URL tirc = new URL(url);
URLConnection connection = tirc.openConnection();
connection.setDoOutput(true);
in = new BufferedReader(new InputStreamReader(tirc.openStream(), "UTF-8"));
String res;
StringBuilder sb = new StringBuilder("");
while ((res = in.readLine()) != null) {
sb.append(res.trim());
}
String str = sb.toString();
ObjectMapper mapper = new ObjectMapper();
if (StringUtils.isNotEmpty(str)) {
JsonNode jsonNode = mapper.readTree(str);
JsonNode resultNode = jsonNode.findValue("route");
JsonNode locationNode = resultNode.findValue("toll_distance");
return locationNode.asDouble();
}
} catch (Exception e) {
log.error("{高德地图获取两点驾驶距离}------------>"+e);
e.printStackTrace();
}
return 0;
}
总结:
1. 高德地图提供了更详细的距离查询API,包括步行、公交和驾车等多种方式。本文采用的是驾车距离查询API。
2. 该API使用GET请求,需要传入起点和终点坐标,ak开发者key以及output输出格式等参数。
3. 响应返回JSON格式的数据,包含驾车距离信息。需要解析JSON数据来获取距离信息。
4. 代码示例展示了如何发送请求,接收响应,并解析JSON数据来获取驾车距离(单位为米)。
5. 代码使用Java实现,需要导入相关库如HttpURLConnection,JSONObject等。
6. 如果参数顺序错误,可能会得到20000等错误码,需要注意参数的正确性。