Ios 高德地图 地图上添加多个大头针 怎么在复用队列中知道我单击的是哪一个大头针

Ios 高德地图 地图上添加多个大头针 怎么在复用队列中知道我单击的是哪一个大头针,第1张

用坐标信息判断 你没说想要的具体的效果 那我就给你说一种吧 假设你地图上面有n个大头针 实际上也就是n个pointAnnotation 你可以通过_mapView.annotations直接获取到 这是个数组

在点击大头针的方法里面

- (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *)view

{

NSArray * array = [NSArray arrayWithArray:_mapView.annotations]

for (int i=0i<array.counti++)

{

if (view.annotation.coordinate.latitude ==((BMKPointAnnotation*)array[i]).coordinate.latitude)

{

//获取到当前的大头针 你可以执行一些 *** 作

}

else

{

//对其余的大头针进行 *** 作 我是删除

//[_mapView removeAnnotation:array[i]]

}

}

}

这要再不采纳 我也就真的无语啦

// 自定义大头针标注

- (MAAnnotationView *)mapView:(MAMapView *)mapView

viewForAnnotation:(id<MAAnnotation>)annotation {

if ([annotation isKindOfClass:[MAPointAnnotation class]]) {

static NSString *reuseIndetifier = @"annotationReuseIndetifier"

MAAnnotationView *annotationView = (MAAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:reuseIndetifier]

if (annotationView == nil) {

annotationView = [[MAAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseIndetifier]

}

annotationView.draggable=YES

annotationView.canShowCallout=YES

annotationView.image = [UIImage imageNamed:@"mark_bg"]

//在大头针上绘制文字

UILabel *lable=[[UILabel alloc]initWithFrame:CGRectMake(5, 3, 15, 10)]

lable.font=[UIFont systemFontOfSize:12]

lable.textColor=[UIColor orangeColor]

NSArray *titleArray=[NSArray arrayWithObjects:@"A",@"B",@"C", nil]

for (int a=0a<titleArray.counta++) {

lable.text=titleArray[a]

NSLog(@"a is %d",a)

NSLog(@"text is %@",lable.text)

}

[annotationView addSubview:lable]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11419772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存