一:自定义大头针方法,
1.直接 用图片 覆盖以前的 百度自己的(bundle里面) 大头针的 图片
2.通过代理方法
- (BMKAnnotationView *)mapView:(BMKMapView *)view viewForAnnotation:(id <BMKAnnotation>)annotation {
// 生成重用标示identifier
NSString *AnnotationViewID = @"WXMKAnnotationView";
// 检查是否有重用的缓存
BMKPinAnnotationView* annotationView = (BMKPinAnnotationView*)[view dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];
// 缓存没有命中,自己构造一个,一般首次添加annotation代码会运行到此处
if (annotationView == nil) {
annotationView = [[[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID]autorelease];
// 设置重天上掉下的效果(annotation)
annotationView.animatesDrop = YES;
annotationView.image = [UIImage imageNamed:@"send_error_new"];
// 设置是否可以拖拽
annotationView.draggable = NO;
annotationView.centerOffset = CGPointMake(0, -(annotationView.frame.size.height * 0.5));
}
annotationView.annotation = annotation;
}
也是可以达到 自定义大头针的效果
二 :自定义 popView 视图
也是 在 - (BMKAnnotationView *)mapView:(BMKMapView *)view viewForAnnotation:(id <BMKAnnotation>)annotation 代理 里面写
popView // 就是自定义的弹出视图视图
BMKActionPaopaoView *pView = [[BMKActionPaopaoView alloc]initWithCustomView:popView];
annotationView.paopaoView = pView;
三:总结BMKAnnotationView
BMKAnnotationView 包含了两个东西 一个 是大头针 一个是popView 视图
四:定位的理解
有个问题 就是当定位成功后 怎么样 把定位的视图显示在中心位置
我有个方法
通过调用代理方法 - (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
/**
* 这里这么样做判断,当定位成功后,把定位的位置显示在地图的中心位置
*/
isLocationServiceSucess 是bool值 默认是 NO
if (isLocationServiceSucess == NO && userLocation.location) {
isLocationServiceSucess = YES;
_mapView.centerCoordinate = userLocation.location.coordinate;
// 这里才是定位成功!!!!!!!
}