Android高德地图计算驾车距离及时间
在Android开发过程中大家可能会遇到这样的需求,根据两个位置的坐标计算行驶距离和时间,如下图
那这里改怎么实现呢?小编也是各种百度,最后发现高德地图自带了计算的API
- 引用高德搜索包,在app目录下
//搜索功能implementation 'com.amap.api:search:latest.integration'
- 实例化 DistanceSearch distanceSearch;
DistanceSearch.DistanceQuery distanceQuery;
distanceQuery = new DistanceSearch.DistanceQuery();distanceSearch = new DistanceSearch(this);
- 设置起点,终点经纬度继承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);
- 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高德地图计算驾车距离及时间相关推荐
- 经纬度和高德地图计算两点距离面积
关于经纬度,可以看huanhuan的博客根据两点经纬度计算距离 文章详细介绍了经纬度以及根据经纬度,计算两点直接的距离. 高德地图中,计算两点直线距离的公式如下: //根据经纬度获取两点距离publi ...
- android高德地图计算行驶里程,高德地图批量统计驾车轨迹的用时及总里程
var http= require('http'); var qs=require('querystring'); var jsonData = { "state": true, ...
- Android 高德地图计算 Circle 计算上下左右四个点经纬度,Circle和Polygon是否全部包含,计算地图中点到线的最短距离
/*** 假设地球为一半径为R的表面光滑圆球体,* 表面上同一经线圈上相差1"两点间的距离为 2πR/360/3600* 表面上同一纬线圈上相差1"两点间的距离为 2πR×cos( ...
- android高德地图api驾车路线规划,驾车路径规划-调起高德地图-示例中心-JS API 示例 | 高德地图API...
html,body,#container{ height:100%; } .btn{ position: fixed; bottom: 20px; right: 20px; background-co ...
- android高德地图api驾车路线规划,规划结果 + 驾车路线绘制
html, body, #container { width: 100%; height: 100%; } 规划结果 + 驾车路线绘制 var map = new AMap.Map("con ...
- android高德地图api驾车路线规划,可拖拽驾车路线规划
可拖拽的路线规划 html, body, #container { width: 100%; height: 100%; } 请拖拽路径试试 var map, route, marker; //基本地 ...
- php高德地图计算距离接口,高德地图计算两坐标之间距离
最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了相关计算方法,供大家参 ...
- 高德地图获取坐标距离_利用java、js或mysql计算高德地图中两坐标之间的距离
前言 因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了 ...
- 高德地图计算两坐标之间距离
转载自:http://blog.csdn.net/jianggujin/article/details/72833711 如要转载请写明原创地址 Java实现 Javascript实现 MySQL实现 ...
最新文章
- php红盾,红盾查询网_ubaike.cn - 小七发外链
- 试试这个文字冒险游戏,故事是AI写的:情节丰满逻辑不乱,进去就出不来了,在线可玩...
- OpenStack基金会的白金和黄金成员公司
- 向量距离计算 java_Milvus 向量搜索引擎开源了!
- OSPF中DR和BDR作用简述
- boost::hana::test::TestGroup用法的测试程序
- Java语法糖之foreach
- linux分区设置大小,Linux调整磁盘分区大小
- 群策群力:破机房征求灵丹妙药
- 在C#中使用 CancellationToken 处理异步任务
- 合成孔径雷达_合成孔径雷达(SAR)基础:汇总
- python排序方法_python内置的排序方法
- java编写简单聊天界面_java实现简单聊天室单人版
- 计算机免费证件照,完全免费!一键替换证件照背景色,再也不用花钱重新拍了...
- 窄带包络Matlab分析,窄带随机过程的产生及其性能测试
- 倒车入库- 通过后视镜调整方向盘
- FastAdmin下拉显示
- 打工能实现财富自由吗?--互联网老辛的思考
- 电话号码的字母组合---2022/01/23
- w7电脑蓝屏怎么解决_win7家用版_电脑老是蓝屏怎么办? - Win7之家