通过高德地图API取得两点坐标间的距离

       高德地图在取两点间的距离比百度地图更详细,可以分为几种类型的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等错误码,需要注意参数的正确性。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值