根据经纬度使用百度和高德地图 进行导航

经纬度使用百度和高德地图 进行导航

地图导航

总结一下自己使用地图导航总结的方法

使用百度地图 代码如下:

判断是否有百度地图app

if(Utils.isAvilible(mContext,"com.baidu.BaiduMap")){
    设置经度  Longitude = 116.456322 纬度 Latitude = 39.5136554
    openBaiduNavi(dataList.getX(),dataList.getY(),dataList.getAddressDesc());
}else {
    if(AutoActivity.yuyan.equals("zh")){
        XToast.showShort(mContext,"请下载百度地图");
    }else {
        XToast.showShort(mContext,"Please download baidu map");
    }

    Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
}

打开百度地图

 /**
     * 打开百度地图导航客户端
     * intent = Intent.getIntent("baidumap://map/navi?location=34.264642646862,108.95108518068&type=BLK&src=thirdapp.navi.you
     * location 坐标点 location与query二者必须有一个,当有location时,忽略query
     * query    搜索key   同上
     * type 路线规划类型  BLK:躲避拥堵(自驾);TIME:最短时间(自驾);DIS:最短路程(自驾);FEE:少走高速(自驾);默认DIS
     */
    private void openBaiduNavi(String lat,String lng,String addressDesc) {

//        StringBuffer stringBuffer = new StringBuffer("baidumap://map/navi?location=")
//                .append(lat).append(",").append(lng).append("&type=TIME");
//        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(stringBuffer.toString()));
//        intent.setPackage("com.baidu.BaiduMap");
//        startActivity(intent);

        XLog.d("调用百度地图经纬度=="+lat+",,,"+lng+",,"+addressDesc);
        try {
            Intent intent = Intent.getIntent("intent://map/direction?origin=latlng:"+LATITUDE_A+","+LONGTITUDE_A+"|name:"+AddressNow+"&destination=latlng:"+lat+","+lng+"|name:"+addressDesc+"&mode=driving&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
            startActivity(intent);
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }


    }

使用高德地图,判断是否安装高德地图

if(Utils.isAvilible(mContext,"com.autonavi.minimap")){
    设置经度  Longitude = 116.456322 纬度 Latitude = 39.5136554
    openGaoDeNavi(dataList.getX(),dataList.getY(),dataList.getAddressDesc());
}else {
    if(AutoActivity.yuyan.equals("zh")){
        XToast.showShort(mContext,"请下载高德地图");
    }else {
        XToast.showShort(mContext,"Please download the map of autonavi");
    }

    Uri uri = Uri.parse("market://details?id=com.autonavi.minimap");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
}

高德导航

  /**
     * 启动高德App进行导航
     * sourceApplication 必填 第三方调用应用名称。如 amap
     * poiname           非必填 POI 名称
     * dev               必填 是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)
     * style             必填 导航方式(0 速度快; 1 费用少; 2 路程短; 3 不走高速;4 躲避拥堵;5 不走高速且避免收费;6 不走高速且躲避拥堵;7 躲避收费和拥堵;8 不走高速躲避收费和拥堵))
     */
    private void openGaoDeNavi(String lat,String lng ,String address) {
//        StringBuffer stringBuffer = new StringBuffer("androidamap://navi?sourceApplication=")
//                .append("yitu8_driver").append("&lat=").append(lat)
//                .append("&lon=").append(lng)
//                .append("&dev=").append(1)
//                .append("&style=").append(0);
//        Intent intent = new Intent(Intent.ACTION_VIEW, android.net.Uri.parse(stringBuffer.toString()));
//        intent.addCategory(Intent.CATEGORY_DEFAULT);
//        intent.setPackage("com.autonavi.minimap");
//        startActivity(intent);

        Intent intent = null;
        try {
             intent = Intent.getIntent("androidamap://route?sourceApplication=softname&sname=我的位置&dlat="+lat+"&dlon="+lng+"&dname="+address+"&dev=0&m=0&t=1");
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        startActivity(intent);

    }

你可能感兴趣的:(安卓地图导航,百度,经验分享)