Android百度地图一种简单实现多标注及响应时间的方法

    在我们使用Android百度地图开发的时候,很多时候会有一个需求,需要在地图上添加标注,代码如下:

BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka);
OverlayOptions overlayOptions = new MarkerOptions().position(new LatLng(latitude,longitude)).icon(bitmapDescriptor);
Marker marker=(Marker) baiduMap.addOverlay(overlayOptions);

    点击地图图标后触发逻辑如下:

@Override
    public boolean onMarkerClick(Marker marker) {
    //点击后的响应逻辑
}
    其中:
baiduMap.setOnMarkerClickListener(this);

    那么,问题来了,如果用户要求添加多个图标,并且每个图标有各自的点击响应逻辑时,该怎么处理呢?代码如下:

 Bundle mBundle = new Bundle();       //使用Bundle来标识每一个标注的信息
 mBundle.putInt("id",i);
 // 地图标注
 BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka);
 OverlayOptions overlayOptions = new MarkerOptions().position(new LatLng(hotelMsgList.get(i).latitude,hotelMsgList.get(i).longitude)).icon(bitmapDescriptor);
 Marker marker=(Marker) baiduMap.addOverlay(overlayOptions);
 marker.setExtraInfo(mBundle);

      上例外面可加个for循环来创建地图标注,由上面代码可知通过一个Bundle对象,来存放每一个标注唯一的key,响应时通过取出Bundle中的key来识别是哪一个标注,响应代码如下:

@Override
    public boolean onMarkerClick(Marker marker) {
            Bundle bundle = marker.getExtraInfo();
            int id = bundle.getInt("id");
            //选择响应逻辑
}

       通过上面的例子简单地实现了百度地图的多标注响应,效果图如下。

                   



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值