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

设置自定义路线
初始化数据

/获取到需要设置的标识图片
    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();
        }


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值