第三方导航功能的封装

navigation包封装了调启各类第三方导航的api,以dialog的形式供用户选择使用百度、高德,或者其他形式进行导航。(目前只封装了百度和高德)

入口类

我们通过唯一的入口类NavigationHelper来使用navigation包提供的功能。

1.生成NavigationHelper的实例,在其构造函数中传入Context对象


mNavigationHelper = new NavigationHelper(this);

2.传入LatLng对象,设置目标位置的经纬度信息


mNavigationHelper.setDestination(mDestination);`

3.显示对话框,供用户选择导航方式


mNavigationHelper.showNaviOptListDialog();

扩展

目前只支持百度和高德导航,如果以后要支持别的导航形式,可以这样扩展(以腾讯地图为例)

1.仿照百度和高德,添加继承NavigationOption的类,比如要支持腾讯地图


class MapTencent extends NavigationOption {

...

}

2.在MapApp中添加新的枚举类型,比如TECENT,GOOGLE


private enum MapApp {

BAIDU, GAODE //, TENCENT

}

3.在工厂类NavigationFactory中添加对应的生成方法


case TENCENT:

return new MapTencent(context);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,303评论 4 61
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,228评论 8 184
  • 李明杰浅谈逆向 https://pan.baidu.com/s/1kVn1Nc7#list/path=%2F密码:...
    Coke26阅读 545评论 0 0
  • 一:命令操作 1. 管理人员创建一个svn仓库 一个svn仓库一般对应的就是一个项目 svnadmin creat...
    小小机器人阅读 623评论 0 0
  • 早晨,我睡醒了,发现我的手上有一个很小的小疙瘩,软软的,也不疼,就和一个点一样。
    齐异初阅读 132评论 0 1