文档章节

iOS基于百度地图的开发 (百度地图BMKSearch问题) (作者不允许转载 我也没办法 ...

RYAN___
 RYAN___
发布于 2013/05/04 17:05
字数 842
阅读 1764
收藏 1

当前为iOS提供的SKD版本为1.2.1,这里主要讲一下这个版本存在的一些问题,以及开发注意事项。

1. BMKMapView是百度地图类,当创建多个BMKMapView对象时,这些对象会共享一些数据(没有仔细研究具体共享哪些数据),因此会产生以下问题:

    A. 当对其中一个BMKMapView通过手势来进行放大、缩小、移动等操作时,其他的BMKMapView对象会自动进行放大、缩小、移动。

    B. 启动应用程序时,首先显示出来的BMKMapView可以得到用户的当前位置,其他的BMKMapView可能要等一段时间或者完全无法得到用户当前的位置。

2. 为了解决1.B中的问题,可以只使用一个BMKMapView对象,比如在两个不同的UIView中共享同一个BMKMapView对象。此外,有一个方法可以基本上解决1.A的问题。假设UIView A和UIView B均有BMKMapView(可以为不同或同一个对象),在UIView A和UIVIew B之间进行切换时,记录下各自当前BMKMapView的Frame,然后在显示的时候再通过设置Frame来恢复到切换前的状态。这个方法的缺点是,在切换很快的时候,ViewDidAppear不一定会被调用,ViewWillDisapper的调用顺序不确定,不过可以满足普通操作的要求。

3. BMKSearch提供了搜索、地址解析等功能。百度通过回调来响应搜索结果,关键的问题是,有时回调并不会被调用(个人感觉是BMKSearch之后,百度的SDK无法正确找到回调函数,比如处于不同的线程等等)。为了能让百度SDK正确找到回调,建议如下:

    A. 在没有得到回调之前,不要释放BMKSearch对象,最好做成全局对象。(必须)

    B. 在搜索路线时,如果起始位置是通过经纬度来表示的,那么节点信息中除了设置经纬度pt信息外,一定要设置name信息(不能为空字符串)。(必须)

    C. 不能同时进行多个搜索。(必须)

    D. 在每次通过BMKSearch对象进行搜索之前,最好是将其delegate设置为nil,然后进行release,然后再alloc,然后再进行搜索。(强烈建议)

    E. 所有的搜索的操作均不要通过委托或其他线程的回调等等来发起,应该是由本对象主动发起,并且本对象作为搜索代理,这样百度SDK才能正确找到回调函数。(强烈建议)

4. 有时需要判断当前用户经纬度是否是在国内,可以通过BMKSearch的地址反解析之后的回调来判断,如果返回的错误码为BMKErrorResultNotFound,那么有可能不在国内,因为其他的原因也可能导致返回此错误码。

5. 其实,最好的解决方法是采用AutoNavi高德地图api,如果是iOS6,那么直接可以直接使用MKMapView,其采用的就是AutoNavi接口。目前AutoNavi接口不足之处是没有步行路线,据说还在开发中,相信以后会支持的。

本文转载自:http://blog.csdn.net/donhao/article/details/7823843

RYAN___

RYAN___

粉丝 63
博文 357
码字总数 40140
作品 0
深圳
程序员
私信 提问
Phonegap各类商业插件

【Phonegap商业插件服务】[目前插件已经支持到Phonegap最新版本] 1.phonegap-百度社会化分享-andriod插件 v2.0 【该插件支持微信分享和朋友圈分享,qq好友分享,微博分享】 2.phonegap百度社...

夜澜小雨
2015/07/15
1K
0
SegmentFault D-Day 2015 北京:iOS 站

SegmentFault D-Day 介绍 SegmentFault D-Day,是由国内最前沿的开发者社区 SegmentFault 主办的技术沙⻰,于2014年正式启动。2015年上半年D-Day已在北、上、广、深、杭等城市成功举办9场,活...

文洁洁洁
2015/11/26
245
0
SegmentFault D-Day 2015 北京:iOS 站

SegmentFault D-Day 介绍 SegmentFault D-Day,是由国内最前沿的开发者社区 SegmentFault 主办的技术沙⻰,于2014年正式启动。2015年上半年D-Day已在北、上、广、深、杭等城市成功举办9场,活...

文洁洁洁
2015/11/26
13
0
常用iOS开发网站资源

图标 https://icomoon.io/app/#/select http://iconfont.cn/repositories http://www.iconfont.cn Api数据接口 聚合数据:http://www.juhe.cn 百度APIStore:http://apistore.baidu.com 医药......

请天点
2016/12/29
196
0
ios百度题图的问题

ios开发在使用百度地图的时候,在我拖动mapview的时候,没有任何的动画效果,我手一放开,地图加载是突然一下全闪出来,我看很多都是那种淡出淡如的效果,这个怎么设置!!求解

小郁
2013/03/25
71
1

没有更多内容

加载失败,请刷新页面

加载更多

无回路有向图的拓扑排序

因公司业务需要,在表单中每个字段都会配置自动计算,但自动计算公式中会引用到其他字段中的值。所以希望可以根据计算公式,优先计算引用的公式。所以最终使用了无回路有向图的扩扑排序来实现...

兜兜毛毛
39分钟前
3
0
如何抢占云栖大会C位?史上最强强强攻略来了

点击观看视频: APSARA云栖大会开发者情怀 原文链接 本文为云栖社区原创内容,未经允许不得转载。

阿里云官方博客
52分钟前
5
0
Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现

作者 | 声东 阿里云售后技术专家<br /> 文章来源:Docker,点击查看原文。 <br />以我的经验来讲,理解 Kubernetes 集群服务的概念,是比较不容易的一件事情。尤其是当我们基于似是而非的理解...

阿里巴巴云原生
55分钟前
7
0
PHP7.3的新特性

2018年12月6日,PHP7.3正式版发布,在PHP7.2基础上进行了大量错误修复和安全优化,性能提升10%! 从目前的更新说明来看,PHP 7.3 并不是一个主打新特性的版本,包含更多的是 bug 修复。PHP 7...

迅睿CMS-PHP开源CMS程序
今天
7
0
Tomcat 应用中并行流带来的类加载问题

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/f-X3n9cvDyU5f5NYH6mhxQ 作者:肖铭轩、王道环 随着 Java8 的不断流行,越来越多的开发人员使用并行流(parallel)...

vivo互联网技术
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部