地图唤起、设置

一、判断手机内安装的地图

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

/**
 * 判断和打开地图
 */
public void navigationMap() {
    //1.两个地图都安装了,让用户选择
    boolean installBaidu = isInstallByread("com.baidu.BaiduMap");
    boolean installAmap = isInstallByread("com.autonavi.minimap");
    if (installBaidu && installAmap) {//两个地图都安装了 让用户进行选择
        showSelectMap();
    } else if (installBaidu) {//安装了百度地图
        startBaiduMap();
    } else if (installAmap) {//安装了高德地图
        startAmapMap();
    } else {//两个地图都没安装,使用web Api进行导航,不建议实现
        //startWebMap();
        T.showToast(mActivity, "您的手机未安装高德地图或者百度地图");
    }
}

 

二、唤起高德地图导航 

/**
 * 唤起高德地图
 */
private void startAmapMap() {
    try {
        Intent intent = new Intent("android.intent.action.VIEW",
                android.net.Uri.parse("androidamap://route?sourceApplication=导航demo" +
                        "&dlat=" + mEndLat +
                        "&dlon=" + mEndLng +
                        "&dname=" + name +
                        "&dev=0&t=2"));
        intent.setPackage("com.autonavi.minimap");
        mActivity.startActivity(intent);
    } catch (Exception e) {
        T.showToast(mActivity, "调起高德地图失败");
    }
}

三、唤起百度地图导航

/**
 * 移动APP调起Android百度地图方式
 */
private void startBaiduMap() {
    try {
        Intent intent = new Intent();
        intent.setData(Uri.parse("baidumap://map/direction?destination=name:" + name + "|" +
                "latlng:" + mEndLat + "," + mEndLng + "&mode=driving&car_type=TIME"));
        mActivity.startActivity(intent); // 启动调用
    } catch (Exception e) {
        T.showToast(mActivity, "调起百度地图失败");
    }

}

四、设置 

//定位选项
LocationClientOption option = new LocationClientOption();
option.setAddrType("all");
//设置是否需要地址信息,默认为无地址
option.setIsNeedAddress(true);
// 设置坐标类型// 返回的定位结果是百度经纬度,默认值gcj02
option.setCoorType("bd09ll");
//设置是否需要返回位置语义化信息,可以在BDLocation.getLocationDescribe()中得到数据
// ex:\"在天安门附近\", 可以用作地址信息的补充
option.setIsNeedLocationDescribe(true);
//设置定位模式// 高精度
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
//设置扫描间隔,单位是毫秒 当<1000(1s)时,定时定位无效
option.setScanSpan(2000);
// 设置网络优先
option.setPriority(LocationClientOption.NetWorkFirst);
// 打开gps
option.setOpenGps(true);
//禁止启用缓存定位
option.disableCache(true);
// 使用设置
mLocClient.setLocOption(option);
//开始定位
mLocClient.start();

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值