百度地图4.1_1开发教程(4)MarkerDrag

本篇文章将讲述地图的长按监听,(单击之前有讲过)结合上一章,生成marker,以及拖拽事件和不同marker的监听。

首先
    private Marker mFavoMarker; // 收藏的点
    private MarkerOptions mFavoOptions; // 收藏点的设置
    private BitmapDescriptor mFavoIcon = BitmapDescriptorFactory
            .fromResource(R.mipmap.ic_mylocation); // marker的图标
    private LatLng mFavoLatlng; // 收藏点的经纬度
在初始化控件后,为地图控件添加长按监听:
public void onMapLongClick(LatLng point)
            {
                mFavoOptions = new MarkerOptions()
                        .position(point)  //设置marker的位置
                        .icon(mFavoIcon) //设置marker图标
                        .zIndex(9)  //设置marker所在层级
                        .draggable(true);  //设置手势拖拽
                // 将marker添加到地图上
                mFavoMarker = (Marker) (mBaiduMap.addOverlay(mFavoOptions));
            }
        });
上面的代码中,在长按事件中,构建了options 对象并添加到了地图上,阅读API后发现
//调用BaiduMap对象的setOnMarkerDragListener方法设置marker拖拽的监听
    mBaiduMap.setOnMarkerDragListener(new BaiduMap.OnMarkerDragListener()
    {
        public void onMarkerDrag(Marker marker)
        {
            //拖拽中
        }

        public void onMarkerDragEnd(Marker marker)
        {
            //拖拽结束
        }

        public void onMarkerDragStart(Marker marker)
        {
            //开始拖拽
        }
    });
   应该在这个方法中实现。下面我们在onMarkerDragEnd方法里添加如下代码就可以获取到经纬度了:

地图上还有其他的marker点,如何区分不同的marker的点击时间呢?
看下面一段代码

        // 飞机点事件监听
        mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener()
        {

            @Override
            public boolean onMarkerClick(Marker marker)
            {
                if (marker == mMarker1) // 
                {
                    
                } else if (marker == mMarker2) // 此marker对应的是
                {

                }
                return true;
            }
        });
这样就可以监听不同的marker的事件了。

Demo地址

http://download.csdn.net/detail/u012552275/9680944


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值