调起百度地图/高德地图传经纬度地址进行导航

Android开发中经常会集成地图,可以直接接入SDK进行开发,也可以调起地图传参数实现各种功能。
调起地图并传经纬度进行导航

//百度地图,log纬度,lat经度
Intent i1 = new Intent();
if (StringUtil.isEmpty(log) || StringUtil.isEmpty(lat)){
    i1.setData(Uri.parse("baidumap://map?"));
}else{
    //i1.setData(Uri.parse("baidumap://map/navi?query=" + MyApplication.app.getOrderDesc()));//传地址进行导航
    i1.setData(Uri.parse("baidumap://map/navi?location= " + lat + " ," + log));//传经纬度进行导航
}
MyApplication.context.startActivity(i1);

//高德地图车机版,需要转换成火星坐标
double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
double x = Double.parseDouble(log) - 0.0065, y = Double.parseDouble(lat) - 0.006;
double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
double lons = dataDigit(6,z * Math.cos(theta));
double lats = dataDigit(6,z * Math.sin(theta));
intent = new Intent();
intent.setAction("AUTONAVI_STANDARD_BROADCAST_RECV");
intent.putExtra("KEY_TYPE", 10038);
intent.putExtra("POINAME",desc.trim());
intent.putExtra("LAT",lats);
intent.putExtra("LON",lons);
intent.putExtra("DEV",0);
intent.putExtra("STYLE",0);
intent.putExtra("SOURCE_APP","Third App");
MyApplication.context.sendBroadcast(intent);
System.out.println("=========高德地图========log:" + lons + ",lat:" + lats + ",desc:" + desc);


//转换经纬度
public double dataDigit(int digit, double in){
    return new   BigDecimal(in).setScale(6,   BigDecimal.ROUND_HALF_UP).doubleValue();
}

调用之前一定要先判断安装了百度地图、高德地图apk

/**判断是否安装了应用*/
public static boolean hasInstallApk(String pakacge){
    if (new File("/data/data/" + pakacge)
            .exists()){
        return true;
    }
    return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值