百度地图相关问题

1.获取屏幕中心点的经纬度:

-(void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{
    BMKMapPoint bmkmappoint;
    bmkmappoint.x = _mapView.visibleMapRect.origin.x+_mapView.visibleMapRect.size.width/2.0;
    bmkmappoint.y = _mapView.visibleMapRect.origin.y+_mapView.visibleMapRect.size.height/2.0;
    CLLocationCoordinate2D  coordinate  = BMKCoordinateForMapPoint(bmkmappoint);
    NSLog(@"当前显示在屏幕中心点的经纬度是:%f,%f",coordinate.latitude,coordinate.longitude);
     
}

2.*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0xb894d60> was mutated while being enumerated.'

在同一时间,不同的线程同时读取和修改了NSMutaleArray。


解决办法:避免多线程同时去修改一个对象, 避免做遍历时,这个对象被修改,根据这个思想,可以考虑加锁,或者直接使用atomic的方式来做。


错在了这里: [_mapView removeAnnotations:_mapView.annotations];


解决方法:在添加Annotations时,将Annotations添加到一个数组里array,[_mapView removeAnnotations:array];


3.针对标注出来时就选中的问题:


在网上找了一些资料,说的解决方法是:

1).[(BMKPinAnnotationView*)newAnnotation setSelected:YES animated:YES];

2).[mapViewselectAnnotation:[mapView.annotationsobjectAtIndex:i]animated:animated];


我在代码里填上之后,发现只有一个实现了,未实现的原因:因为在用select时候,那么前一个就已经被设置为deselect了。

这样,还不如自己封装一个继承于BMKAnnotationView的view,在BMKAnnotationView上添加一个标注uilabel&气泡image

4.做百度地图时,用到监听,就是用kvo监听mapview的zoolevel的变化,但是在你双击地图时,地图的zoomlevel发生变化了,但是它不能调用监听方法,我这里的处理方法是:重新设置一下它的zoomlevel,就是自己set一下mapview的zoomlevel,然后才会调用。没有想到其他的好方法。。。


5.在其他软件中打开百度地图,并在百度软件中实现导航,搜索等

      在这里仅仅实现打开百度地图,如果打不开,则跳到App Store下载百度地图软件。
        判断能否打开URL,能打开就打开,不能打开就跳转到百度地图,可能有的同学要做一打开百度地图就导航,或者显示搜索到的关键字的结果。这个就是改下下面代码中的的stringURL,带什么参数,需要对照百度协议,打开http://developer.baidu.com/map/uri-introios.htm对照协议。
NSString *stringURL= [ NSString stringWithFormat : @"mapbarnaviiap:" ];

          NSURL *url = [NSURLURLWithString:stringURL];

          if ([[UIApplicationsharedApplication] canOpenURL:url]) {

              [[UIApplicationsharedApplication] openURL:url];

          }else{

             UIAlertView *alert=[[UIAlertViewalloc]initWithTitle:@"提示"message:@"您未安装百度地图,是否立即前往APPStore安装!"delegate:selfcancelButtonTitle:nilotherButtonTitles:@"立即安装",@"稍后安装",nil];

              [alertshow];

              [alertrelease];

           }


6.最近有人问我为什么地图打开是空的,只有网格?包括百度提供的demo也是空的,原因很简单,百度折腾的。

IOS开发百度地图API-用点生成路线,导航,气泡响应


问题在于申请的key。
之前申请可能不需要完整的签名,现在需要完整的签名才行。简单点说,之前申请叫cscapp(工程名)就ok。现在申请需要com.calinks.cscapp(bundle identifer),这个名字必须跟Bundle  Identifer完全相同才能通过百度密钥。

7.有时候觉得百度地图挺kang die 的,我在做百度地图相关功能的时候发现,内存占用真的很厉害,好几十兆,但是我运行过一次高德的demo,发现二者相差很多啊,不知道为什么。。。。。。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值