因为公司项目需要用到外部导航,找到一些,大兄弟们凑合看...好吧反正也没人看- -
1.调用百度导航
//开启百度导航
public void startNavi() {
//百度地图,从起点是LatLng ll_location = new LatLng("你的纬度latitude","你的经度longitude");
//终点是LatLng ll = new LatLng("你的纬度latitude","你的经度longitude");
NaviParaOption para = new NaviParaOption();
para.startPoint(ll_location);
para.startName("从这里开始");
para.endPoint(ll);
para.endName("到这里结束");
try {
BaiduMapNavigation.openBaiduMapNavi(para, getContext());
} catch (BaiduMapAppNotSupportNaviException e) {
e.printStackTrace();
ToastUtil.showToast("您尚未安装百度地图或地图版本过低");
}
}
2.调用高德地图导航
//高德地图,起点就是定位点
// 终点是LatLng ll = new LatLng("你的纬度latitude","你的经度longitude");
public void startNaviGao() {
if (isAvilible(getContext(), "com.autonavi.minimap")) {
try {
//sourceApplication
Intent intent = Intent.getIntent("androidamap://navi?sourceApplication=公司的名称(随意写)&poiname=我的目的地&lat=" + ll.latitude + "&lon=" + ll.longitude + "&dev=0");
startActivity(intent);
} catch (URISyntaxException e) {
e.printStackTrace();
}
} else {
ToastUtil.showToast("您尚未安装高德地图或地图版本过低");
}
}
//谷歌地图,起点就是定位点
// 终点是LatLng ll = new LatLng("你的latitude","你的longitude");
public void startNaviGoogle() {
if (isAvilible(getContext(), "com.google.android.apps.maps")) {
Uri gmmIntentUri = Uri.parse("google.navigation:q=" + ll.latitude + "," + ll.longitude);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
} else {
ToastUtil.showToast("您尚未安装谷歌地图或地图版本过低");
}
}
//验证各种导航地图是否安装
public static boolean isAvilible(Context context, String packageName) {
//获取packagemanager
final PackageManager packageManager = context.getPackageManager();
//获取所有已安装程序的包信息
List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
//用于存储所有已安装程序的包名
List<String> packageNames = new ArrayList<String>();
//从pinfo中将包名字逐一取出,压入pName list中
if (packageInfos != null) {
for (int i = 0; i < packageInfos.size(); i++) {
String packName = packageInfos.get(i).packageName;
packageNames.add(packName);
}
}
//判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
return packageNames.contains(packageName);
}
5.一个吐司类
public class ToastUtil {
private static Toast toast;
/**
* 强大的可以连续弹的吐司
* @param text
*/
public static void showToast(String text){
if(toast==null){
//创建吐司对象
toast = Toast.makeText(MyApplication.context, text, Toast.LENGTH_LONG);
}else {
//说明吐司已经存在了,那么则只需要更改当前吐司的文字内容
toast.setText(text);
}
//最后你再show
toast.show();
}
}
6.调用成功的示意图