第三方导航功能的封装

2016-10-28  本文已影响0人  ui的烦恼

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);

上一篇 下一篇

猜你喜欢

热点阅读