关于新版本百度地图SDK的一些坑

因工程需要,在公司新项目需要使用到新版本的百度地图SDK,新版本的百度地图SDK和之前老版本的百度地图SDK存在一些差异,导致在集成过程中遇到了一些问题,这些问题基本都是百度地图版本更迭导致的,在这里与大家分享他们以及其解决方案。

一、定位服务的变更

由于之前使用的百度地图SDK版本较老,更换SDK为新版本后出现定位问题,定位莫名其妙的跑到了海外,大概在非洲西海岸的位置,一开始编译后发现定位点周围一片蓝色,缩小后发现是海洋,在缩小则会看到是在非洲西海岸。
可是我的手机不可能定位到这么偏的地方啊,要说在室内GPS不准,可我还连着网络呢啊?
仔细查阅了百度地图SDK社区的一些回答发现,也有人遇到相同的问题,而顺藤摸瓜发现,新版百度地图的定位SDK是是用服务来完成定位的,查阅相关开发文档发现,该服务是需要进行声明才可以生效的,以下给出新版定位SDK服务声明方法:

在Manifest中的标签下添加如下配置

在初始化Application类(没有则在第一个Activity)的OnCreate方法添加
public LocationService locationService;
...
@Override
public void onCreate() {
    super.onCreate();
    locationService = new LocationService(getApplicationContext());
    ...
}

然后,编译运行,你会发现......咦?怎么还定位在非洲西海岸?
新版本系统请注意定位权限的申请,或者直接修改工程的targetSdkVersion小于等于22即可。

二、线路规划的问题

新版本百度地图SDK不再集成路线规划相关的类,而将他们开源了,然而,例如我之前要是用到的根据步行规划路线的关键类WalkingRouteOverlay就不再存在了,然而,查询半天也没个解决办法,官方社区是有解释,但解决起来还是蛮费功夫的,具体来说,官方只给出了“哦,我们这个开源了你们自己去找源代码吧”大概这样子的答复,然而呢,事实是下载到源代码后你会眼花缭乱一脸蒙逼,原因是这一堆子的类互相都有关联,怎么集成啊(╯‵□′)╯︵┻━┻
好吧,我这里直接给出相关类,如有需要将这个包里头所有java文件拷到你的工程里就好了,不过注意改java类的包名哦。

下载地址:http://pan.baidu.com/s/1hsv3LaO

以上。
如果还有不明白的欢迎留言,如有建议也欢迎提出,就这样了,我继续搬砖去。

你可能感兴趣的:(关于新版本百度地图SDK的一些坑)