更新1.9神瑛侍者投胎以后变成,为啥我的地图都变成暗的了?

具体的集成方法 直接官方文档就好了 这里只做 使用说明:
如果集成没有问题 那么跟着我的以下步骤做 绝对没有问题:(在这里说明一下 我把 定位和地图 分块写出来的这样比较清晰)
1.appDelegate & 倒入头文件 &定义百度管理者属性属性
@property (strong, nonatomic) BMKMapManager *mapM
&并在启动方法中实现方法
#import &BaiduMapAPI_Map/BMKMapView.h&//只引入所需的单个头文件
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  #pragma mark - 百度地图
& & // 要使用百度地图,请先启动BaiduMapManager
& & _mapManager = [[BMKMapManager alloc]init];
& & // 如果要关注网络及授权验证事件,请设定 & & generalDelegate参数
& & BOOL ret = [_mapManager start:@"SjoQXduG5ibrPCHn4PfZy87p"& generalDelegate:nil]; // 蓝色部分替换你自己的key
& & if (!ret) {
& & & & NSLog(@"百度地图管理者 启动失败");
2.在要使用地图的类中 &倒入头文件 进行使用百度地图的功能
#import &BaiduMapAPI_Base/BMKBaseComponent.h&//引入base相关所有的头文件
#import &BaiduMapAPI_Map/BMKMapComponent.h&//引入地图功能所有的头文件
#import &BaiduMapAPI_Location/BMKLocationComponent.h&//引入定位功能所有的头文件
#import &BaiduMapAPI_Utils/BMKUtilsComponent.h&//引入计算工具所有的头文件
#import &BaiduMapAPI_Map/BMKMapView.h&//只引入所需的单个头文件
3.调用方法是用 直接贴代码注释很详细
@interface MapLawDetailViewController () &BMKMapViewDelegate, BMKLocationServiceDelegate&
&*& 百度地图
@property (strong, nonatomic) BMKMapView *mapV
&*& 定为服务
@property (strong, nonatomic) BMKLocationService *locS
@implementation MapLawDetailViewController
- (void)viewDidLoad {
& & [super viewDidLoad];
& & // 启动定位
& & [self locService];
& & // 显示地图
& & [self.view addSubview:self.mapView];
#pragma mark - 定位功能------------------------------------
- (BMKLocationService *)locService {
& & if (_locService == nil) {
& & & & _locService = [[BMKLocationService alloc]init];
& & & & _locService.delegate =
& & & & _locService.distanceFilter = 100.f;
& & & & // 后台也定位 并且屏幕上方有蓝条提示
& & & & _locService.allowsBackgroundLocationUpdates = YES;
& & & & //启动LocationService
& & & & [_locService startUserLocationService];
& & return _locS
//实现相关delegate 处理位置信息更新
//处理位置坐标更新
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
& & // 1.显示用户位置
& & self.mapView.showsUserLocation = YES;
& & // 2.更新用户最新位置到地图上
& & [self.mapView updateLocationData:userLocation];
& & // 3.设置中心 为 用户位置
& & CLLocationCoordinate2D center = userLocation.location.
& & CLLocationDegrees latitude = 0.5;
& & CLLocationDegrees longitude = 0.5;
& & // 4.设置跨度 数值越小 越精确
& & BMKCoordinateSpan span = BMKCoordinateSpanMake(latitude, longitude);
& & // 5.设置区域 中心店 和 范围跨度
& & BMKCoordinateRegion region = BMKCoordinateRegionMake(center, span);
& & // 设置地图显示区域范围
& & [self.mapView setRegion:region animated:YES];
#pragma mark - 地图功能-------------------------------------------
- (BMKMapView *)mapView {
& & if (_mapView == nil) {
& & & & _mapView = [[BMKMapView alloc]initWithFrame:self.view.bounds];
& & return _mapV
- (void)viewWillAppear:(BOOL)animated
& & [self.mapView viewWillAppear];
& & self.mapView.delegate = // 此处记得不用的时候需要置nil,否则影响内存的释放
- (void)viewWillDisappear:(BOOL)animated
& & [self.mapView viewWillDisappear];
& & self.mapView.delegate = // 不用时,置nil
- (void)viewDidAppear:(BOOL)animated {
& & // 添加一个PointAnnotation模型
& & BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
& & CLLocationCoordinate2D // 定义模型经纬度
& & coor.latitude = 39.915;
& & coor.longitude = 116.404;
& & annotation.coordinate =
& & annotation.title = @"这里是北京";
& & [_mapView addAnnotation:annotation];
//& Override每当添加一个大头针就会调用这个方法(对大头针没有进行封装)
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id &BMKAnnotation&)annotation {
& & // 这里的BMKAnnotationView 就相当于是UITableViewCell一样 其实就是一个View我们也是通过复用的样子一样进行使用。 而传进来的annotation 就是一个模型,它里面装的全都是数据!
& & if ([annotation isKindOfClass:[BMKPointAnnotation class]]) {
& & & & // 如果大头针类型 是我们自定义的百度的 而且是后加的大头针模型类 的话 才执行
& & & & static NSString *const ID = @"myAnnotation";
& & & & BMKPinAnnotationView *newAnnotationView = (BMKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:ID];
& & & & if (newAnnotationView == nil) {
& & & & & & newAnnotationView =& [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:ID];
& & & & newAnnotationView.pinColor = BMKPinAnnotationColorP
& & & & newAnnotationView.animatesDrop = YES; // 设置该标注点动画显示
& & & & newAnnotationView.image = [UIImage imageNamed:@"marker"];
& & & & return newAnnotationV
& & // 这里是说定位自己本身的那个大头针模型 返回nil 自动就变成蓝色点点
总结:百度地图是用很方便,相对于之前的版本,废弃了一些api 这样更简单易用。
(如果有写的不对的地方欢迎与我交流 QQ: 我将怀着谦卑的心 努力学习 感激不尽)
阅读(...) 评论()

参考资料

 

随机推荐