ios中使用百度地图监听哪个点击BMKPointAnnotation的方法

ios中使用百度地图监听哪个点击BMKPointAnnotation的方法

在ios中使用BMKPointAnnotation来创建定位点的泡泡,点击泡泡也可以监听到点击

-(void)viewDidLoad{
[super viewDidLoad];
...
// 添加一个PointAnnotation
BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
CLLocationCoordinate2D coor;
coor.latitude = 39.915;
coor.longitude = 116.404;
annotation.coordinate = coor;
annotation.title = @"这里是北京";
[mapView addAnnotation:annotation];
}

- (void)mapView:(BMKMapView *)mapView annotationViewForBubble:(BMKAnnotationView *)view{
NSLog(@"paopaoclick");
}

上面这段代码是添加了一个泡泡,点击泡泡监听到点击,但是有个问题就是如果有多个泡泡,我不知道是哪个点击的,通过BMKAnnotationView无法获取到BMKPointAnnotation,并且BMKPointAnnotation无法设置tag,查询官方示例也没查到,百度了很久也没查到,这两个完全是脱节的,在单击的监听方法里无法知道是哪个点击的,也不可能用经纬度再从数据里再去查一遍,如果有相同的经纬度查询就会有问题。

后来终于查到一个方法可以解决这个问题,看下面代码:

-(void)viewDidLoad{
[super viewDidLoad];
...
// 添加一个PointAnnotation
BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
CLLocationCoordinate2D coor;
coor.latitude = 39.915;
coor.longitude = 116.404;
annotation.coordinate = coor;
annotation.title = @"这里是北京";
[mapView addAnnotation:annotation];
BMKAnnotationView* aview = [mapView viewForAnnotation:annotation];
aview.tag = 1;
}

- (void)mapView:(BMKMapView *)mapView annotationViewForBubble:(BMKAnnotationView *)view{
NSLog(@"paopaoclick___tag:%d",view.tag);
}

用上面代码从mapView里的viewForAnnotation方法根据anntation生成对应的View,然后设置一下tag就可以了,我没找到其它办法,如果大家知道其它更好的办法请告诉我。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值