美文网首页
关于新版本百度地图SDK的一些坑

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

作者: kongzue | 来源:发表于2016-10-06 19:30 被阅读1799次

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

    一、定位服务的变更

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

    在Manifest中的<application>标签下添加如下配置
    <service
        android:name="com.baidu.location.f"
        android:enabled="true"
        android:process=":remote" />
    
    在初始化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的一些坑

          本文链接:https://www.haomeiwen.com/subject/xygeyttx.html