距离测量 最后更新时间: 2021年01月22日
从搜索功能6.1.0 版本开始支持距离测量功能。使用此方法可以在不请求驾车出行路线规划接口的同时完成距离计算。目前支持直线距离和驾车距离的测量。
第 1 步,初始化 DistanceSearch 对象
distanceSearch = new DistanceSearch(this);
第 2 步,设置数据回调监听器
distanceSearch.setDistanceSearchListener(this);
第 3 步,设置搜索参数
通过 new DistanceSearch.DistanceQuery()
LatLonPoint start = new LatLonPoint(39.90403, 116.407525);
LatLonPoint start1 = new LatLonPoint(39.90000, 116.407525);
LatLonPoint start2 = new LatLonPoint(38.540103, 76.978787);
LatLonPoint start3 = new LatLonPoint(10.90000, 116.407525);
LatLonPoint dest = new LatLonPoint(39.90455, 116.407555);
//设置起点和终点,其中起点支持多个
List<LatLonPoint> latLonPoints = new ArrayList<LatLonPoint>();
latLonPoints.add(start);
latLonPoints.add(start1);
latLonPoints.add(start2);
latLonPoints.add(start3);
distanceQuery.setOrigins(latLonPoints);
distanceQuery.setDestination(dest);
//设置测量方式,支持直线和驾车
distanceQuery.setType(DistanceSearch.TYPE_DRIVING_DISTANCE);
第 4 步,发送请求
使用类 DistanceSearch 的 calculateRouteDistanceAsyn(DistanceSearch.DistanceQuery query) 方法进行距离测量计算。
distanceSearch.calculateRouteDistanceAsyn(distanceQuery);
第 5 步,接收数据
在 DistanceSearch.OnDistanceSearchListener 接口回调方法 onDistanceSearched(DistanceResult distanceResult, int errorCode) 处理距离测量结果。返回的信息中您可以获得预估的直线或驾车路线距离。
说明:
1)可以在回调中解析result,距离测量结果。
2)result.getDistanceResults()可以获取到 DistanceItem 列表,距离测量结果详细信息可参考 DistanceItem 类。
3)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)
@Override
public void onDistanceSearched(DistanceResult distanceResult, int errorCode) {
//解析result获取距离测量结果,可参考官方demo
注意事项:
1、使用上述功能需要下载地图SDK,导入搜索功能的jar包。
2、地图SDK V4.1.3版本开始,SDK不再提供 com.amap.api.maps.overlay 包下的 overlay,已在官方demo中开源。