- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- //启动引擎 BaiduMapManager
- _mapManager = [[BMKMapManager alloc]init];
- // 如果要关注网络及授权验证事件,设定generalDelegate参数,否则为nil即可
- BOOL ret = [_mapManager start:@” 申请的有效key” generalDelegate: (id<BMKGeneralDelegate>)self];
- if (!ret) {
- NSLog(@”manager start failed!”);
- }
- self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
- // Override point for customization after application launch.
- self.viewController = [[[ViewController alloc] initWithNibName:@”ViewController” bundle:nil] autorelease];
- self.window.rootViewController = self.viewController;
- [self.window makeKeyAndVisible];
- return YES;
- }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//启动引擎 BaiduMapManager
_mapManager = [[BMKMapManager alloc]init];
// 如果要关注网络及授权验证事件,设定generalDelegate参数,否则为nil即可
BOOL ret = [_mapManager start:@" 申请的有效key" generalDelegate: (id<BMKGeneralDelegate>)self];
if (!ret) {
NSLog(@”manager start failed!”);
}
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@”ViewController” bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
用xib 或者手动创建一张地图
在 -(void)viewWillAppear:(BOOL)animated中 要设置代理(或者viewDidLoad的时候创建设置),切记,否则可能会出现方格 不出现地图。
_myMapView=[[BMKMapView alloc] initWithFrame:CGRectMake(0, 0, Screen.width, Screen.height)];
- [super viewWillAppear:animated];
- [_mapView viewWillAppear];
- _mapView.showsUserLocation = NO;//先关闭显示的定位图层
- _mapView.userTrackingMode = BMKUserTrackingModeNone;//设置定位的状态
- _mapView.showsUserLocation = YES;//显示定位图层
- _mapView.delegate = self;
- _geocodesearch.delegate = self;
- _userLocation.delegate = self;
- _walkingRoutePlanOption.delegate = self;
[super viewWillAppear:animated];
[_mapView viewWillAppear];
_mapView.showsUserLocation = NO;//先关闭显示的定位图层
_mapView.userTrackingMode = BMKUserTrackingModeNone;//设置定位的状态
_mapView.showsUserLocation = YES;//显示定位图层
_mapView.delegate = self;
_geocodesearch.delegate = self;
_userLocation.delegate = self;
_walkingRoutePlanOption.delegate = self;
步行路线代理、定位代理等。
在退出界面的时候 (注意!不能在viewWillDisappear方法中,至于为什么 听别人说的 百度地图与ios会冲突)设置代理为空
- [_mapView viewWillDisappear];
- _mapView.delegate = nil;
- _geocodesearch.delegate = nil; // 此处记得不用的时候需要置nil,否则影响内存的释放
- _userLocation.delegate = nil;
- [_userLocation stopUserLocationService];
- _mapView.showsUserLocation = NO;
- _walkingRoutePlanOption.delegate = nil;
[_mapView viewWillDisappear];
_mapView.delegate = nil;
_geocodesearch.delegate = nil; // 此处记得不用的时候需要置nil,否则影响内存的释放
_userLocation.delegate = nil;
[_userLocation stopUserLocationService];
_mapView.showsUserLocation = NO;
_walkingRoutePlanOption.delegate = nil;
当你用到
/**
*打开定位服务
*/
-(void)startUserLocationService;的时候,就会回调代理方法
- /**
- *用户方向更新后,会调用此函数
- *@param userLocation 新的用户位置
- */
- - (void)didUpdateUserHeading:(BMKUserLocation *)userLocation;
/**
*用户方向更新后,会调用此函数
*@param userLocation 新的用户位置
*/
- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation;
还有一些失败。停止定位等代理方法 请下载百度SDK查看。
- -(void)didUpdateUserLocation:(BMKUserLocation *)userLocation{
- NSLog(@”latitude–%f,longtitude—%f”,userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);
- CLLocationDegrees locaLatitude;
- CLLocationDegrees locaLongitude;
- locaLatitude=userLocation.location.coordinate.latitude;//纬度
- locaLongitude=userLocation.location.coordinate.longitude;//精
- BMKCoordinateRegion region;
- //将定位的点居中显示
- region.center.latitude=locaLatitude;
- region.center.longitude=locaLongitude;
- region.span.latitudeDelta = 0.01;
- region.span.longitudeDelta = 0.01;
- [_mapView setRegion:region animated:NO];
- subCoor.latitude = locaLatitude;
- subCoor.longitude = locaLongitude;
- [_mapView setCenterCoordinate:subCoor animated:YES];
- }
-(void)didUpdateUserLocation:(BMKUserLocation *)userLocation{
NSLog(@"latitude--%f,longtitude---%f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);
CLLocationDegrees locaLatitude;
CLLocationDegrees locaLongitude;
locaLatitude=userLocation.location.coordinate.latitude;//纬度
locaLongitude=userLocation.location.coordinate.longitude;//精
BMKCoordinateRegion region;
//将定位的点居中显示
region.center.latitude=locaLatitude;
region.center.longitude=locaLongitude;
region.span.latitudeDelta = 0.01;
region.span.longitudeDelta = 0.01;
[_mapView setRegion:region animated:NO];
subCoor.latitude = locaLatitude;
subCoor.longitude = locaLongitude;
[_mapView setCenterCoordinate:subCoor animated:YES];
}
根据所得到的 经纬度 可以确定地理位置
[self geocode:[_latitude doubleValue] withLongitude:[_longitude doubleValue]];
- -(void)geocode:(double)latitude withLongitude:(double)longitude{
- CLLocationCoordinate2D pt = (CLLocationCoordinate2D){0, 0};
- pt = (CLLocationCoordinate2D){latitude, longitude};
- BMKReverseGeoCodeOption *reverseGeocodeSearchOption = [[BMKReverseGeoCodeOption alloc]init];
- reverseGeocodeSearchOption.reverseGeoPoint = pt;
- BOOL flag = [_geocodesearch reverseGeoCode:reverseGeocodeSearchOption];
- if(flag)
- {
- NSLog(@”反geo检索发送成功”);
- }
- else
- {
- NSLog(@”反geo检索发送失败”);
- }
- }
-(void)geocode:(double)latitude withLongitude:(double)longitude{
CLLocationCoordinate2D pt = (CLLocationCoordinate2D){0, 0};
pt = (CLLocationCoordinate2D){latitude, longitude};
BMKReverseGeoCodeOption *reverseGeocodeSearchOption = [[BMKReverseGeoCodeOption alloc]init];
reverseGeocodeSearchOption.reverseGeoPoint = pt;
BOOL flag = [_geocodesearch reverseGeoCode:reverseGeocodeSearchOption];
if(flag)
{
NSLog(@"反geo检索发送成功");
}
else
{
NSLog(@"反geo检索发送失败");
}
}
其中
- /**
- *根据地理坐标获取地址信息
- *异步函数,返回结果在BMKGeoCodeSearchDelegate的onGetAddrResult通知
- *@param reverseGeoCodeOption 反geo检索信息类
- *@return 成功返回YES,否则返回NO
- */
- - (BOOL)reverseGeoCode:(BMKReverseGeoCodeOption*)reverseGeoCodeOption;
/**
*根据地理坐标获取地址信息
*异步函数,返回结果在BMKGeoCodeSearchDelegate的onGetAddrResult通知
*@param reverseGeoCodeOption 反geo检索信息类
*@return 成功返回YES,否则返回NO
*/
- (BOOL)reverseGeoCode:(BMKReverseGeoCodeOption*)reverseGeoCodeOption;然后会调用
- /**
- *返回反地理编码搜索结果
- *@param searcher 搜索对象
- *@param result 搜索结果
- *@param error 错误号,@see BMKSearchErrorCode
- */
- - (void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error;
/**
*返回反地理编码搜索结果
*@param searcher 搜索对象
*@param result 搜索结果
*@param error 错误号,@see BMKSearchErrorCode
*/
- (void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error;则为
- -(void) onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
- {
- if (error == 0) {
- //
- self.addArr = [NSString stringWithFormat:@”%@”,result.address];
- _pointAnnotation.subtitle =[NSString stringWithFormat:@”当前位置:%@”,self.addArr];
- if (_pointAnnotation == nil) {
- [XCCommonUtility QQTShowAlertMsg:@”无法获取当前位置,请稍后再试”];
- return ;
- }
- [annotationArrays addObject:_pointAnnotation];
- [_mapView addAnnotations:annotationArrays];
- [self seachWalkRoute];
- }
- }
-(void) onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
{
if (error == 0) {
//
self.addArr = [NSString stringWithFormat:@"%@",result.address];
_pointAnnotation.subtitle =[NSString stringWithFormat:@"当前位置:%@",self.addArr];
if (_pointAnnotation == nil) {
[XCCommonUtility QQTShowAlertMsg:@"无法获取当前位置,请稍后再试"];
return ;
}
[annotationArrays addObject:_pointAnnotation];
[_mapView addAnnotations:annotationArrays];
[self seachWalkRoute];
}
}
PS:
result.address即为反地理编码得到的位置。 [annotationArrays addObject:_pointAnnotation]; 是为标注数组。当有多个标注,先把标注添加到数组里 然后再添加至
[_mapView addAnnotations:annotationArrays];文章末尾会说明。
- /**
- *向地图窗口添加标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
- *@param annotation 要添加的标注
- */
- - (void)addAnnotation:(id <BMKAnnotation>)annotation;
- /**
- *向地图窗口添加一组标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
- *@param annotations 要添加的标注数组
- */
- - (void)addAnnotations:(NSArray *)annotations;
/**
*向地图窗口添加标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
*@param annotation 要添加的标注
*/
- (void)addAnnotation:(id <BMKAnnotation>)annotation;
/**
*向地图窗口添加一组标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
*@param annotations 要添加的标注数组
*/
- (void)addAnnotations:(NSArray *)annotations;
步行路线
- /**
- *步行路线检索
- *异步函数,返回结果在BMKRouteSearchDelegate的onGetWalkingRouteResult通知
- *@param walkingRoutePlanOption 步行检索信息类
- *@return 成功返回YES,否则返回NO
- */
- -(BOOL)walkingSearch:(BMKWalkingRoutePlanOption*)walkingRoutePlanOption;
- /**
- *返回步行搜索结果
- *@param searcher 搜索对象
- *@param result 搜索结果,类型为BMKWalkingRouteResult
- *@param error 错误号,@see BMKSearchErrorCode
- */
- -(void)onGetWalkingRouteResult:(BMKRouteSearch*)searcher result:(BMKWalkingRouteResult*)result errorCode:(BMKSearchErrorCode)error;
/**
*步行路线检索
*异步函数,返回结果在BMKRouteSearchDelegate的onGetWalkingRouteResult通知
*@param walkingRoutePlanOption 步行检索信息类
*@return 成功返回YES,否则返回NO
*/
-(BOOL)walkingSearch:(BMKWalkingRoutePlanOption*)walkingRoutePlanOption;
/**
*返回步行搜索结果
*@param searcher 搜索对象
*@param result 搜索结果,类型为BMKWalkingRouteResult
*@param error 错误号,@see BMKSearchErrorCode
*/
-(void)onGetWalkingRouteResult:(BMKRouteSearch*)searcher result:(BMKWalkingRouteResult*)result errorCode:(BMKSearchErrorCode)error;
直接上代码
- -(void)seachWalkRoute{
- BMKWalkingRoutePlanOption *walkingRoute = [[BMKWalkingRoutePlanOption alloc]init];
- BMKPlanNode* currentNode = [[BMKPlanNode alloc] init];
- currentNode.pt = mianCoor;
- // currentNode.name = @”aaa”; //注意,这里不能为空@”“
- BMKPlanNode* poiNode = [[BMKPlanNode alloc] init];
- poiNode.pt = subCoor;
- // poiNode.name = @”bbb”;//注意,这里不能为空@”“
- walkingRoute.from = currentNode;
- walkingRoute.to = poiNode;
- BOOL flag = [_walkingRoutePlanOption walkingSearch:walkingRoute];
- if (flag == YES) {
- NSLog(@”搜索成功”);
- }else{
- [XCCommonUtility QQTShowAlertMsg:@”暂时无法获取步行路线”];
- NSLog(@”搜索失败”);
- }
- }
- - (void)onGetWalkingRouteResult:(BMKRouteSearch*)searcher result:(BMKWalkingRouteResult*)result errorCode:(BMKSearchErrorCode)error{
- NSArray* array = [NSArray arrayWithArray:_mapView.annotations];
- [_mapView removeAnnotations:array];
- array = [NSArray arrayWithArray:_mapView.overlays];
- [_mapView removeOverlays:array];
- if (error == BMK_SEARCH_NO_ERROR) {
- BMKWalkingRouteLine* plan = (BMKWalkingRouteLine*)[result.routes objectAtIndex:0];
- int size = [plan.steps count];
- int planPointCounts = 0;
- for (int i = 0; i < size; i++) {
- BMKWalkingStep* transitStep = [plan.steps objectAtIndex:i];
- if(i==0){
- MapPointAnnotion* item = [[MapPointAnnotion alloc]init];
- item.coordinate = plan.starting.location;
- item.subtitle =_describe;;
- item.type = 0;
- item.tagNumber = 1;
- [_mapView addAnnotation:item]; // 添加起点标注
- }else if(i==size-1){
- MapPointAnnotion* item = [[MapPointAnnotion alloc]init];
- item.coordinate = plan.terminal.location;
- item.subtitle =[NSString stringWithFormat:@”当前位置:%@”,self.addArr];;
- item.type = 1;
- item.tagNumber = 0;
- [_mapView addAnnotation:item]; // 添加起点标注
- }
- //添加annotation节点
- MapPointAnnotion* item = [[MapPointAnnotion alloc]init];
- item.coordinate = transitStep.entrace.location;
- item.title = transitStep.entraceInstruction;
- item.degree = transitStep.direction * 30;
- item.type = 4;
- // [_mapView addAnnotation:item];
- //轨迹点总数累计
- planPointCounts += transitStep.pointsCount;
- }
- //轨迹点
- BMKMapPoint * temppoints = new BMKMapPoint[planPointCounts];
- int i = 0;
- for (int j = 0; j < size; j++) {
- BMKWalkingStep* transitStep = [plan.steps objectAtIndex:j];
- int k=0;
- for(k=0;k<transitStep.pointsCount;k++) {
- temppoints[i].x = transitStep.points[k].x;
- temppoints[i].y = transitStep.points[k].y;
- i++;
- }
- }
- // 通过points构建BMKPolyline
- BMKPolyline* polyLine = [BMKPolyline polylineWithPoints:temppoints count:planPointCounts];
- [_mapView addOverlay:polyLine]; // 添加路线overlay
- delete []temppoints;
- }
- }
-(void)seachWalkRoute{
BMKWalkingRoutePlanOption *walkingRoute = [[BMKWalkingRoutePlanOption alloc]init];
BMKPlanNode* currentNode = [[BMKPlanNode alloc] init];
currentNode.pt = mianCoor;
// currentNode.name = @"aaa"; //注意,这里不能为空@""
BMKPlanNode* poiNode = [[BMKPlanNode alloc] init];
poiNode.pt = subCoor;
// poiNode.name = @"bbb";//注意,这里不能为空@""
walkingRoute.from = currentNode;
walkingRoute.to = poiNode;
BOOL flag = [_walkingRoutePlanOption walkingSearch:walkingRoute];
if (flag == YES) {
NSLog(@"搜索成功");
}else{
[XCCommonUtility QQTShowAlertMsg:@"暂时无法获取步行路线"];
NSLog(@"搜索失败");
}
}
- (void)onGetWalkingRouteResult:(BMKRouteSearch*)searcher result:(BMKWalkingRouteResult*)result errorCode:(BMKSearchErrorCode)error{
NSArray* array = [NSArray arrayWithArray:_mapView.annotations];
[_mapView removeAnnotations:array];
array = [NSArray arrayWithArray:_mapView.overlays];
[_mapView removeOverlays:array];
if (error == BMK_SEARCH_NO_ERROR) {
BMKWalkingRouteLine* plan = (BMKWalkingRouteLine*)[result.routes objectAtIndex:0];
int size = [plan.steps count];
int planPointCounts = 0;
for (int i = 0; i < size; i++) {
BMKWalkingStep* transitStep = [plan.steps objectAtIndex:i];
if(i==0){
MapPointAnnotion* item = [[MapPointAnnotion alloc]init];
item.coordinate = plan.starting.location;
item.subtitle =_describe;;
item.type = 0;
item.tagNumber = 1;
[_mapView addAnnotation:item]; // 添加起点标注
}else if(i==size-1){
MapPointAnnotion* item = [[MapPointAnnotion alloc]init];
item.coordinate = plan.terminal.location;
item.subtitle =[NSString stringWithFormat:@"当前位置:%@",self.addArr];;
item.type = 1;
item.tagNumber = 0;
[_mapView addAnnotation:item]; // 添加起点标注
}
//添加annotation节点
MapPointAnnotion* item = [[MapPointAnnotion alloc]init];
item.coordinate = transitStep.entrace.location;
item.title = transitStep.entraceInstruction;
item.degree = transitStep.direction * 30;
item.type = 4;
// [_mapView addAnnotation:item];
//轨迹点总数累计
planPointCounts += transitStep.pointsCount;
}
//轨迹点
BMKMapPoint * temppoints = new BMKMapPoint[planPointCounts];
int i = 0;
for (int j = 0; j < size; j++) {
BMKWalkingStep* transitStep = [plan.steps objectAtIndex:j];
int k=0;
for(k=0;k<transitStep.pointsCount;k++) {
temppoints[i].x = transitStep.points[k].x;
temppoints[i].y = transitStep.points[k].y;
i++;
}
}
// 通过points构建BMKPolyline
BMKPolyline* polyLine = [BMKPolyline polylineWithPoints:temppoints count:planPointCounts];
[_mapView addOverlay:polyLine]; // 添加路线overlay
delete []temppoints;
}
}
第二个方法基本上是直接照搬官方deom的 后面才发现原来这么方便。。刚开始全是自己研究,直到绘制步行路线这块 搞了很久 最后还没搞出来 就去照搬demo了 然后略微修改 分分钟搞定了。。
刚刚所提到的添加标注,可以在路线两端用到。
添加标注必须实现此代理
- /**
- *根据anntation生成对应的View
- *@param mapView 地图View
- *@param annotation 指定的标注
- *@return 生成的标注View
- */
- - (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation;
/**
*根据anntation生成对应的View
*@param mapView 地图View
*@param annotation 指定的标注
*@return 生成的标注View
*/
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation;
- -(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation
- {
- BMKAnnotationView *newAnnotation =[mapView viewForAnnotation:annotation];
- if (newAnnotation==nil && [annotation isKindOfClass:[MapPointAnnotion class]])
- {
- MapPointAnnotion* pointAnnotation = (MapPointAnnotion*)annotation;
- NSString *AnnotationViewID = [NSString stringWithFormat:@”iAnnotation-%d”,pointAnnotation.tagNumber];
- newAnnotation = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID];
- // 设置颜色
- newAnnotation.tag = pointAnnotation.tagNumber;
- ((BMKPinAnnotationView*)newAnnotation).pinColor = BMKPinAnnotationColorPurple;
- // 从天上掉下效果
- ((BMKPinAnnotationView*)newAnnotation).animatesDrop = NO;
- // 设置可拖拽
- ((BMKPinAnnotationView*)newAnnotation).draggable = NO;
- //设置大头针图标
- if (pointAnnotation.tagNumber == 0) {
- ((BMKPinAnnotationView*)newAnnotation).image = [UIImage imageNamed:@”map_mark_mylocation.png”];
- }else{
- ((BMKPinAnnotationView*)newAnnotation).image = [UIImage imageNamed:@”map_mark.png”];
- }
- UIView *popView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 220, 60)];
- popView.layer.cornerRadius = 3;//设置那个圆角的有多圆
- popView.layer.borderWidth = 1;//设置边框的宽度,当然可以不要
- popView.layer.borderColor = [[UIColor lightGrayColor] CGColor];//设置边框的颜色
- popView.layer.masksToBounds = YES;
- // popView.backgroundColor = [QQTStringPlist colorPlistForKey:@”qqt_bc”];
- [popView setBackgroundColor:[[QQTStringPlist colorPlistForKey:@”qqt_bc”]colorWithAlphaComponent:0.5]];
- UILabel *carName = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 220, 60)];
- carName.text = [annotation subtitle];
- carName.font = [UIFont systemFontOfSize:14];
- carName.textColor = [UIColor blackColor];
- carName.lineBreakMode = kTextLineBreakByCharWrapping;
- carName.textAlignment = kTextAlignmentCenter;
- carName.numberOfLines = 0;
- [popView addSubview:carName];
- BMKActionPaopaoView *pView = [[BMKActionPaopaoView alloc]initWithCustomView:popView];
- pView.frame = CGRectMake(0, 0, 220, 63);
- ((BMKPinAnnotationView*)newAnnotation).paopaoView = nil;
- ((BMKPinAnnotationView*)newAnnotation).paopaoView = pView;
- [newAnnotation setSelected:YES];
- }
- return newAnnotation;
- }
-(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation
{
BMKAnnotationView *newAnnotation =[mapView viewForAnnotation:annotation];
if (newAnnotation==nil && [annotation isKindOfClass:[MapPointAnnotion class]])
{
MapPointAnnotion* pointAnnotation = (MapPointAnnotion*)annotation;
NSString *AnnotationViewID = [NSString stringWithFormat:@"iAnnotation-%d",pointAnnotation.tagNumber];
newAnnotation = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID];
// 设置颜色
newAnnotation.tag = pointAnnotation.tagNumber;
((BMKPinAnnotationView*)newAnnotation).pinColor = BMKPinAnnotationColorPurple;
// 从天上掉下效果
((BMKPinAnnotationView*)newAnnotation).animatesDrop = NO;
// 设置可拖拽
((BMKPinAnnotationView*)newAnnotation).draggable = NO;
//设置大头针图标
if (pointAnnotation.tagNumber == 0) {
((BMKPinAnnotationView*)newAnnotation).image = [UIImage imageNamed:@"map_mark_mylocation.png"];
}else{
((BMKPinAnnotationView*)newAnnotation).image = [UIImage imageNamed:@"map_mark.png"];
}
UIView *popView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 220, 60)];
popView.layer.cornerRadius = 3;//设置那个圆角的有多圆
popView.layer.borderWidth = 1;//设置边框的宽度,当然可以不要
popView.layer.borderColor = [[UIColor lightGrayColor] CGColor];//设置边框的颜色
popView.layer.masksToBounds = YES;
// popView.backgroundColor = [QQTStringPlist colorPlistForKey:@"qqt_bc"];
[popView setBackgroundColor:[[QQTStringPlist colorPlistForKey:@"qqt_bc"]colorWithAlphaComponent:0.5]];
UILabel *carName = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 220, 60)];
carName.text = [annotation subtitle];
carName.font = [UIFont systemFontOfSize:14];
carName.textColor = [UIColor blackColor];
carName.lineBreakMode = kTextLineBreakByCharWrapping;
carName.textAlignment = kTextAlignmentCenter;
carName.numberOfLines = 0;
[popView addSubview:carName];
BMKActionPaopaoView *pView = [[BMKActionPaopaoView alloc]initWithCustomView:popView];
pView.frame = CGRectMake(0, 0, 220, 63);
((BMKPinAnnotationView*)newAnnotation).paopaoView = nil;
((BMKPinAnnotationView*)newAnnotation).paopaoView = pView;
[newAnnotation setSelected:YES];
}
return newAnnotation;
}


3532

被折叠的 条评论
为什么被折叠?



