您的位置:首页 > 其它

百度地图 点击地图规划路线

2016-11-04 19:55 295 查看
设置自定义路线

初始化数据

/获取到需要设置的标识图片
BitmapDescriptor bdA = BitmapDescriptorFactory
.fromResource(R.drawable.icon_marka);
BitmapDescriptor bdB = BitmapDescriptorFactory
.fromResource(R.drawable.icon_markb);
private int count=0;
private boolean isfind=true;
private Marker mMarkerA;
private Marker mMarkerB;
//记录点击地图的坐标位置
private LatLng first = null;
private LatLng last = null;

//获取控件
Button clear = (Button) findViewById(R.id.clearCooie);
//清除点击地图出现的路线
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
count = 0;
first = null;
last = null;
isfind =true;
mMarkerA.remove();
mMarkerB.remove();
}
});


设置地图点击监听方法

**

* 单击监听百度地图页面

* 将第一次点击的位置设置为起始点,

* 将第二次点击的位置设置为终止点

* 通过每次点击将对应的地图经纬度位置记录下来。(并通过PlanNode 类,将经纬度转化为想对应的位置点。。)

*

* //获取到起始点经纬度

PlanNode startPn = PlanNode.withLocation(first);

PlanNode endPn = PlanNode.withLocation(last);

MarkerOptions ooB = new MarkerOptions().position(point).icon(bdB)
.zIndex(5);
* @param point
*/


@Override
public void onMapClick(LatLng point) {
mBaidumap.hideInfoWindow();
if(++count<=2){
if(isfind){
isfind=false;
MarkerOptions ooA = new MarkerOptions().position(point).icon(bdA)
.zIndex(9).draggable(true);
// 掉下动画
ooA.animateType(MarkerOptions.MarkerAnimateType.drop);
mMarkerA = (Marker) (mBaidumap.addOverlay(ooA));
first=point;
}else{
last = point;
//获取到起始点经纬度
PlanNode startPn = PlanNode.withLocation(first);
PlanNode endPn = PlanNode.withLocation(last);

MarkerOptions ooB = new MarkerOptions().position(point).icon(bdB)
.zIndex(5);
// 掉下动画
ooB.animateType(MarkerOptions.MarkerAnimateType.drop);
//判断当你的动画结束后才开始路线规划

mMarkerB = (Marker) (mBaidumap.addOverlay(ooB));

//进行休眠设置
//默认进行驾车路线规划
mSearch.drivingSearch((new DrivingRoutePlanOption())
.from(startPn).to(endPn));
}
}else{
Toast.makeText(RoutePlanDemo.this,"您的点击次数超过了两次!",Toast.LENGTH_SHORT).show();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: