实现功能: 调用百度地图的DistanceUtil. getDistance(p1, p2)实现多点距离量测,并将过程点进行连接。
实现效果:
实现过程:
1 声明变量
List<LatLng> points = new ArrayList<LatLng>();//位置点集合---存储2个点数据,size()>2时清空(因为使用的是DistanceUtil. getDistance)
List<LatLng> distancePoints = new ArrayList<LatLng>();//位置点集合---存储所有点数据
double distance = 0.0; //存储距离
2 实现onMapClick方式,向地图上添加marker并把点数据存储起来
/*
* @Description: 自动调用函数
* @Author: LiYue
* @CreateDate: 2020/4/18 21:10
*/
@Override
public void onMapClick(LatLng latLng) {
markerOption.icon(BitmapDescriptorFactory
.fromResource(R.drawable.icon_markb));
if (distanceMeasurement) {
markerOption.position(latLng); //设置marker的显示位置
Marker marker = (Marker) mBaiduMap.addOverlay(markerOption); //将marker在地图上显示出来
distancePoints.add(latLng);//将当前点数据添加到总集合中-------点连线和显示点数量、距离使用
points.add(latLng);//将点数据添加到临时集合中---points.get(0)-->//points.get(1)-->//points.get(1)
if (points.size() == 2) {
//当临时集合中点数量超过2时
distance += DistanceUtil.getDistance(points.get(0), points.get(1));//调用百度地图api实现两点间距离量算
points.clear();//清空临时集合中的数据
points.add(latLng);//points.get(0)
}
}
}
- 结束量测,显示量测结果
public void