百度地图的一些坑

  1. 在Appdelegate中注册 百度地图 Api 填写你在百度地图申请的budleid

_mapManager = [[BMKMapManager alloc]init];

// 如果要关注网络及授权验证事件,请设定    generalDelegate参数

BOOL ret = [_mapManager start:@" "  generalDelegate:nil];

if (!ret) {

NSLog(@"manager start failed!");

}

2. 画地图的

_mapView = [[BMKMapView alloc]init];

//    _mapView.delegate = self;

_mapView.mapType = BMKMapTypeStandard;

//    _mapView.zoomEnabled = YES;

_mapView.gesturesEnabled = YES;

_mapView.scrollEnabled = YES;

地图的精度

_mapView.zoomLevel = 15;

_mapView.showsUserLocation = NO;

/***动态定制我的位置样式        */

BMKLocationViewDisplayParam *displayParam = [[BMKLocationViewDisplayParam alloc] init];

displayParam.locationViewOffsetX=0;//定位偏移量(经度)

displayParam.locationViewOffsetY=0;//定位偏移量(纬度)

displayParam.isAccuracyCircleShow=NO;//经度圈是否显示

//这里替换自己的图标路径,必须把图片放到百度地图SDK的Resources/mapapi.bundle/images 下面

//还有一种方法就是获取到_locationView之后直接设置图片

displayParam.locationViewImgName=@"hzb_dtdw_dw";

[_mapView updateLocationViewWithParam:displayParam];

[self.view addSubview:_mapView];

_mapView.sd_layout.leftEqualToView(self.view).rightEqualToView(self.view).topEqualToView(self.view).bottomEqualToView(self.view);

3 、地图画好之后 如果需要定位的话就 检索当前的位置  获取当前的位置 在更新到地图的中心点坐标 就是了 百度地图有个定位的功能 BMKLocationService 这个类里设置定位  重点。。。。需要在 plist文件中设置是否需要定位 做项目的时候忘了这个 配置 定位没出来   多注意看官方文档才是关键  类推的还有一个是导航的功能 也需要配置plist文件 导航的直接调用百度的导航功能就是了

/**

*打开定位服务

*需要在info.plist文件中添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):

*NSLocationWhenInUseUsageDescription 允许在前台使用时获取GPS的描述

*NSLocationAlwaysUsageDescription 允许永远可获取GPS的描述

*/

-(void)startUserLocationService;

4. 检索位置 怎么获取自己的位置呢  就是这个类 BMKLocationService 

(1)

_locationSevice = [[BMKLocationService alloc]init];

//    _locationSevice.delegate = self;

_mapView.userTrackingMode = BMKUserTrackingModeNone;

_mapView.showsUserLocation = YES;

[_locationSevice setDesiredAccuracy:kCLLocationAccuracyBest];

//    [_locationManger requestAlwaysAuthorization];

_locationSevice.distanceFilter =kCLDistanceFilterNone;

开始定位了

[_locationSevice startUserLocationService];

(2)定位的结果在这里奥

// 位置更新后

-(void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation{

NSLog(@"----%@",userLocation.location);

_mapView.centerCoordinate = userLocation.location.coordinate;

跟新我的位置

[_mapView updateLocationData:userLocation];

}

5 .关于检索 分为正检索和反检索 就是根据你的坐标获取你所在的地址名 叫正检索 反检索 就是根据地址名获取所在的坐标 BMKGeoCodeSearch 用到的这个类

(1)/**

*根据地址名称获取地理信息

*异步函数,返回结果在BMKGeoCodeSearchDelegate的onGetAddrResult通知

*@param geoCodeOption      geo检索信息类

*@return 成功返回YES,否则返回NO

*/

- (BOOL)geoCode:(BMKGeoCodeSearchOption*)geoCodeOption;

输入地址名

(2)结果 

/**

*返回地址信息搜索结果

*@param searcher 搜索对象

*@param result 搜索结BMKGeoCodeSearch果

*@param error 错误号,@see BMKSearchErrorCode

*/

- (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error;

对应的根据坐标获取地址名的 同理

6.自定义大头针   大头针需要自定义

(1)

-(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id)annotation{

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

NSString *AnnotationViewID = @"annotationViewID";

BMKPinAnnotationView * annotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID];

// 从天上掉下效果

annotationView.animatesDrop = NO;

// 设置可拖拽

annotationView.draggable = NO;

UIImage * locaImage = [UIImage imageNamed:@"dw_gj_icon_ls"];

annotationView.annotation = annotation;

annotationView.image = locaImage;

UIView *popView  = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 250, 100)];

UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"dw_gj_srk"]];

image.frame = CGRectMake(0, 0, 250, 100);

image.contentMode = UIViewContentModeScaleToFill;

[popView addSubview:image];

//自定义显示的内容

UILabel *driverName = [[UILabel alloc]initWithFrame:CGRectMake(0, 3, 250, 20)];

driverName.text = [NSString stringWithFormat:@"当前位置%@",(_trajectoryDatemodel.Track[0])[@"Place"]];

driverName.backgroundColor = [UIColor clearColor];

driverName.font = [UIFont systemFontOfSize:12.5];

driverName.textColor = [UIColor whiteColor];

driverName.textAlignment = NSTextAlignmentLeft;

[popView addSubview:driverName];

UILabel *carName = [[UILabel alloc]initWithFrame:CGRectMake(0, 25, 250, 20)];

carName.text = [NSString stringWithFormat:@"目的地%@",_EndString];

carName.backgroundColor = [UIColor clearColor];

carName.font = [UIFont systemFontOfSize:12.5];

carName.textColor = [UIColor whiteColor];

carName.textAlignment = NSTextAlignmentLeft;

[popView addSubview:carName];

UILabel *Timelabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 51, 250, 20)];

Timelabel.text =_TimeString;

Timelabel.backgroundColor = [UIColor clearColor];

Timelabel.font = [UIFont systemFontOfSize:12.5];

Timelabel.textColor = [UIColor whiteColor];

Timelabel.textAlignment = NSTextAlignmentLeft;

[popView addSubview:Timelabel ];

BMKActionPaopaoView *pView = [[BMKActionPaopaoView alloc]initWithCustomView:popView];

pView.frame = CGRectMake(0, 0, 250, 100);

((BMKPinAnnotationView*)annotationView).paopaoView = nil;

((BMKPinAnnotationView*)annotationView).paopaoView = pView;

return annotationView;

}

return nil;

}

(2)大头针的点击事件

//点击

-(void)mapView:(BMKMapView *)mapView annotationViewForBubble:(BMKAnnotationView *)view{

if ([view.annotation isKindOfClass:[Newpoint class]]) {

Newpoint *anno = (Newpoint*)view.annotation;

点击事件这里写 传值什么的

[self OnTouchPoint];

}

}

7 .还有一个计算轨迹的 把所得的大头针都展示在列表上 然后在自定义大头针的时候判断第一个和别的不一样就是了

BMKPointAnnotation  *pointAnnotation = [[BMKPointAnnotation alloc]init];

CLLocationCoordinate2D coor;

coor.latitude = [(_trajectoryDatemodel.Track[0])[@"Latitude"] doubleValue];

coor.longitude = [(_trajectoryDatemodel.Track[0])[@"Longitude"] doubleValue];

pointAnnotation.coordinate = coor;

pointAnnotation.title =(_trajectoryDatemodel.Track[0])[@"Place"];

[_TrajectoryMapView addAnnotation:pointAnnotation];

[_TrajectoryMapView selectAnnotation:pointAnnotation animated:YES];

_TrajectoryMapView.centerCoordinate = (CLLocationCoordinate2D){[(_trajectoryDatemodel.Track[0])[@"Latitude"] doubleValue],[(_trajectoryDatemodel.Track[0])[@"Longitude"] doubleValue]};

_TrajectoryMapView.delegate = self;

CLLocationCoordinate2D coords[100] = {0};

for (int i=0; i<_trajectoryDatemodel.Track.count; i++) {

double Latitude  = [(_trajectoryDatemodel.Track[i])[@"Latitude"] doubleValue] ;

double Longitude = [(_trajectoryDatemodel.Track[i])[@"Longitude"] doubleValue]  ;

coords[i].latitude = Latitude ;

coords[i].longitude = Longitude ;

BMKPointAnnotation *point  = [[BMKPointAnnotation alloc]init];

point.coordinate = {coords[i].latitude,coords[i].longitude};

point.title =(_trajectoryDatemodel.Track[i])[@"Place"];

[_TrajectoryMapView addAnnotation:point];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容