在Android开发过程中大家可能会遇到这样的需求,根据两个位置的坐标计算行驶距离和时间,如下图

那这里改怎么实现呢?小编也是各种百度,最后发现高德地图自带了计算的API

  1. 引用高德搜索包,在app目录下
//搜索功能implementation 'com.amap.api:search:latest.integration'
  1. 实例化 DistanceSearch distanceSearch;
    DistanceSearch.DistanceQuery distanceQuery;
distanceQuery = new DistanceSearch.DistanceQuery();distanceSearch = new DistanceSearch(this);
  1. 设置起点,终点经纬度继承DistanceSearch.OnDistanceSearchListener的回调
LatLonPoint start = new LatLonPoint(Double.valueOf(start_lat), Double.valueOf(start_lng));LatLonPoint dest = new LatLonPoint(Double.valueOf(lat), Double.valueOf(lng));List<LatLonPoint> latLonPoints = new ArrayList<LatLonPoint>();latLonPoints.add(start);distanceQuery.setOrigins(latLonPoints);distanceQuery.setDestination(dest);
//        设置测量方式,支持直线和驾车distanceQuery.setType(DistanceSearch.TYPE_DRIVING_DISTANCE);distanceSearch.calculateRouteDistanceAsyn(distanceQuery);distanceSearch.setDistanceSearchListener(this);
  1. DistanceSearch.OnDistanceSearchListener返回的DistanceResult返回信息就是我们要的数据,DistanceResult返回的是单位是米和秒,我们把单位转换一下
@Overridepublic void onDistanceSearched(DistanceResult distanceResult, int i) {mStatusView.showContentView();
//        Log.d("距离", "onDistanceSearched: " + i);if (i == 1000) {String time_string;//距离米String distance = Integer.valueOf((int) distanceResult.getDistanceResults().get(0).getDistance()) / 1000 + "";//时间秒 转分钟/*int time = (int) distanceResult.getDistanceResults().get(0).getDuration() / 60;Log.d("距离", "onDistanceSearched: " + distance + "   " + time);int hours = (int) Math.floor(time / 60);int minute = time % 60;if (hours > 0) {time_string = time + "小时" + minute + "分钟";} else {time_string = minute + "分钟";}*/long second = (long) distanceResult.getDistanceResults().get(0).getDuration();long days = second / 86400;            //转换天数second = second % 86400;            //剩余秒数long hours = second / 3600;            //转换小时second = second % 3600;                //剩余秒数long minutes = second / 60;            //转换分钟second = second % 60;if (days > 0) {time_string = days + "天" + hours + "小时" + minutes + "分钟";} else if (hours > 0) {time_string = hours + "小时" + minutes + "分钟";} else {time_string = minutes + "分钟";}mTvDistance.setText("距您约" + distance + "公里,驾车约" + time_string);} else {mTvDistance.setText("暂无定位信息");}}

至此大功告成,就成功的拿到驾车行驶距离和时间!

Android高德地图计算驾车距离及时间相关推荐

  1. 经纬度和高德地图计算两点距离面积

    关于经纬度,可以看huanhuan的博客根据两点经纬度计算距离 文章详细介绍了经纬度以及根据经纬度,计算两点直接的距离. 高德地图中,计算两点直线距离的公式如下: //根据经纬度获取两点距离publi ...

  2. android高德地图计算行驶里程,高德地图批量统计驾车轨迹的用时及总里程

    var http= require('http'); var qs=require('querystring'); var jsonData = { "state": true, ...

  3. Android 高德地图计算 Circle 计算上下左右四个点经纬度,Circle和Polygon是否全部包含,计算地图中点到线的最短距离

    /*** 假设地球为一半径为R的表面光滑圆球体,* 表面上同一经线圈上相差1"两点间的距离为 2πR/360/3600* 表面上同一纬线圈上相差1"两点间的距离为 2πR×cos( ...

  4. android高德地图api驾车路线规划,驾车路径规划-调起高德地图-示例中心-JS API 示例 | 高德地图API...

    html,body,#container{ height:100%; } .btn{ position: fixed; bottom: 20px; right: 20px; background-co ...

  5. android高德地图api驾车路线规划,规划结果 + 驾车路线绘制

    html, body, #container { width: 100%; height: 100%; } 规划结果 + 驾车路线绘制 var map = new AMap.Map("con ...

  6. android高德地图api驾车路线规划,可拖拽驾车路线规划

    可拖拽的路线规划 html, body, #container { width: 100%; height: 100%; } 请拖拽路径试试 var map, route, marker; //基本地 ...

  7. php高德地图计算距离接口,高德地图计算两坐标之间距离

    最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了相关计算方法,供大家参 ...

  8. 高德地图获取坐标距离_利用java、js或mysql计算高德地图中两坐标之间的距离

    前言 因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了 ...

  9. 高德地图计算两坐标之间距离

    转载自:http://blog.csdn.net/jianggujin/article/details/72833711 如要转载请写明原创地址 Java实现 Javascript实现 MySQL实现 ...

最新文章

  1. php红盾,红盾查询网_ubaike.cn - 小七发外链
  2. 试试这个文字冒险游戏,故事是AI写的:情节丰满逻辑不乱,进去就出不来了,在线可玩...
  3. OpenStack基金会的白金和黄金成员公司
  4. 向量距离计算 java_Milvus 向量搜索引擎开源了!
  5. OSPF中DR和BDR作用简述
  6. boost::hana::test::TestGroup用法的测试程序
  7. Java语法糖之foreach
  8. linux分区设置大小,Linux调整磁盘分区大小
  9. 群策群力:破机房征求灵丹妙药
  10. 在C#中使用 CancellationToken 处理异步任务
  11. 合成孔径雷达_合成孔径雷达(SAR)基础:汇总
  12. python排序方法_python内置的排序方法
  13. java编写简单聊天界面_java实现简单聊天室单人版
  14. 计算机免费证件照,完全免费!一键替换证件照背景色,再也不用花钱重新拍了...
  15. 窄带包络Matlab分析,窄带随机过程的产生及其性能测试
  16. 倒车入库- 通过后视镜调整方向盘
  17. FastAdmin下拉显示
  18. 打工能实现财富自由吗?--互联网老辛的思考
  19. 电话号码的字母组合---2022/01/23
  20. w7电脑蓝屏怎么解决_win7家用版_电脑老是蓝屏怎么办? - Win7之家

热门文章

  1. vue3.0 子组件调用父组件中的方法
  2. C#面向对象总结小项目之实现英雄联盟回合制小游戏(文字版)
  3. 梦幻西游2升级计算机,梦幻西游2官网3月1日维护公告 改名为梦幻西游电脑版
  4. 钢的基本知识02——钢材牌号表示含义
  5. macOS BigSur正式版来了!这些新变化和新功能值得一试
  6. Power BI中怎样使用Python
  7. 量化投资 --- 技术篇 (2) 套利定价理论
  8. 工控机or拓展坞USB供电不足问题发现与解决方案
  9. PPT转成 Word文档的 4种方法
  10. SAP FI 系列 008: 会计科目设置要点总结