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

由于项目的需要,原先的导航功能不需要自己去集成三方的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();
        }
    }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值