基于百度地图的开发,各种坑
来源:互联网 发布:焦大seo 编辑:程序博客网 时间:2024/06/02 23:19
在IOS上加百度地图的调用,发现定位一直出问题,后来才发现可能是要用单个实例来做才行,上网查了一些别人写好的资料,整理在这里备忘:
转载自:
http://jingyan.baidu.com/article/0eb457e56ebaed03f0a9057e.html
当前为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接口不足之处是没有步行路线,据说还在开发中,相信以后会支持的。
- 基于百度地图的开发,各种坑
- iOS_基于百度地图的开发
- 基于Android的百度地图开发
- 基于百度地图API的开发
- 基于百度地图的相关开发
- 百度地图开发的坑
- 基于百度地图开发实践
- Android基于位置的服务开发,百度地图的使用
- Android 基于位置的开发与百度地图(一)
- Android 基于位置的开发与百度地图 (二)
- 基于百度地图API的WinForm地图
- 移动开发学习第一发:基于百度地图开发地图显示时遇到的问题总结
- 百度地图开发中遇到的坑
- 百度地图开发遇到的坑
- 基于百度地图API开发问题集合
- [Liferay]基于liferay开发百度地图portlet
- 基于百度地图3.1.1开发导航
- 【百度地图开发之二】基于Fragment的地图框架的使用
- JS实现图片翻书效果
- 黑马程序员_Java高新技术_交通灯管理系统
- C#_IComparable实例 - 对象ID进行排序
- hello my world
- 小米2在Eclipse 调试
- 基于百度地图的开发,各种坑
- Monotouch BindingProject之友盟SDK
- 5款工具助你写出更好的Java代码
- win32第一个程序编译以及解释 ---第二章
- spring3+mybaitis3遇到的问题(一)
- ExtJS后台
- UVALive 3635 Pie 切糕大师 二分
- spring3+mybaitis3遇到的问题(二)
- delphi 日期加减(及日期函数)