关于代码直接调用高德地图和百度地图导航功能的代码

由于项目的需要,原先的导航功能不需要自己去集成三方的SDK,而是直接调用高德或者百度客户端,进行导航

public static final String PACKEGE_GAODE="com.autonavi.minimap";
public static final String PACKEGE_BAIDU="com.baidu.BaiduMap";


 /**
     * 判断是否安装目标应用
     * @param packageName 目标应用安装后的包名
     * @return 是否已安装目标应用
     */
    private boolean isInstallByread(String packageName) {
        return new File("/data/data/" + packageName).exists();
    }

 //跳转到地图软件进行导航,优先选用高德地图,其次用百度地图
/**
 * 城市名 位置名  目的地纬度 目的地经度
 */
private void navigation(String city, String position,String lat,String lon) {
        try {
            Intent intent=null;
            if(isInstallByread(PACKEGE_GAODE)){
                //高德地图导航的代码
                Toast.makeText(getApplicationContext(), "打开高德地图", Toast.LENGTH_SHORT).show();
                intent = Intent.parseUri("androidamap://viewMap?sourceApplication=appname&poiname="+position+"&lat="+lat+"&lon="+lon+"&dev=0",0);
            }else if(isInstallByread(PACKEGE_BAIDU)){
                //百度地图导航的代码
                Toast.makeText(getApplicationContext(), "打开百度地图", Toast.LENGTH_SHORT).show();
                intent=Intent.parseUri("intent://map/geocoder?location="+lat+","+lon+"&coord_type=gcj02&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end",0);
            }
            else{
                Toast.makeText(getApplicationContext(), "未安装高德或者百度地图软件", Toast.LENGTH_SHORT).show();
            }
            if (intent!=null){
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
            }
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
    }

你可能感兴趣的:(关于代码直接调用高德地图和百度地图导航功能的代码)