基于百度地图开放平台实现获取两个地点间的距离 您所在的位置:网站首页 百度地图如何查两点距离 基于百度地图开放平台实现获取两个地点间的距离

基于百度地图开放平台实现获取两个地点间的距离

2024-07-07 10:00| 来源: 网络整理| 查看: 265

实现目标:基于百度地图开放平台实现获取两个地点间的距离。

步骤:1. 基于百度地图开放平台实现(https://lbsyun.baidu.com/)

2. 注册账号--->创建应用获取AK(服务端应用)--->调用接口

 3. 相关接口:(1)获取地址的经纬度接口:https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

(2)根据两个经纬度获取距离接口:https://lbsyun.baidu.com/index.php?title=webapi/directionlite-v1

private Integer checkOutOfRange() { String address = ""; //地址1 String shopAddress = ""; //地址2 String ak =""; Map map = new HashMap(); map.put("address",shopAddress); map.put("output","json"); map.put("ak",ak); //获取地址1的经纬度坐标 String shopCoordinate = HttpClientUtil.doGet("https://api.map.baidu.com/geocoding/v3", map); JSONObject jsonObject = JSON.parseObject(shopCoordinate); if(!jsonObject.getString("status").equals("0")){ throw new OrderBusinessException("店铺地址解析失败"); } //数据解析 JSONObject location = jsonObject.getJSONObject("result").getJSONObject("location"); String lat = location.getString("lat"); String lng = location.getString("lng"); //店铺经纬度坐标 String shopLngLat = lat + "," + lng; map.put("address",address); //获取地址2的经纬度坐标 String userCoordinate = HttpClientUtil.doGet("https://api.map.baidu.com/geocoding/v3", map); jsonObject = JSON.parseObject(userCoordinate); if(!jsonObject.getString("status").equals("0")){ throw new OrderBusinessException("收货地址解析失败"); } //数据解析 location = jsonObject.getJSONObject("result").getJSONObject("location"); lat = location.getString("lat"); lng = location.getString("lng"); //用户收货地址经纬度坐标 String userLngLat = lat + "," + lng; map.put("origin",shopLngLat); map.put("destination",userLngLat); map.put("steps_info","0"); //路线规划 String json = HttpClientUtil.doGet("https://api.map.baidu.com/directionlite/v1/driving", map); jsonObject = JSON.parseObject(json); if(!jsonObject.getString("status").equals("0")){ throw new OrderBusinessException("配送路线规划失败"); } //数据解析 JSONObject result = jsonObject.getJSONObject("result"); JSONArray jsonArray = (JSONArray) result.get("routes"); Integer distance = (Integer) ((JSONObject) jsonArray.get(0)).get("distance"); return distance; }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有