navigation包封裝了調(diào)啟各類第三方導(dǎo)航的api,以dialog的形式供用戶選擇使用百度、高德,或者其他形式進(jìn)行導(dǎo)航。(目前只封裝了百度和高德)
入口類
我們通過唯一的入口類NavigationHelper來使用navigation包提供的功能。
1.生成NavigationHelper的實例,在其構(gòu)造函數(shù)中傳入Context對象
mNavigationHelper = new NavigationHelper(this);
2.傳入LatLng對象,設(shè)置目標(biāo)位置的經(jīng)緯度信息
mNavigationHelper.setDestination(mDestination);`
3.顯示對話框,供用戶選擇導(dǎo)航方式
mNavigationHelper.showNaviOptListDialog();
擴(kuò)展
目前只支持百度和高德導(dǎo)航,如果以后要支持別的導(dǎo)航形式,可以這樣擴(kuò)展(以騰訊地圖為例)
1.仿照百度和高德,添加繼承NavigationOption的類,比如要支持騰訊地圖
class MapTencent extends NavigationOption {
...
}
2.在MapApp中添加新的枚舉類型,比如TECENT,GOOGLE
private enum MapApp {
BAIDU, GAODE //, TENCENT
}
3.在工廠類NavigationFactory中添加對應(yīng)的生成方法
case TENCENT:
return new MapTencent(context);