android打开外部地图导航(百度、高德、腾讯)

外部打开百度地图进行导航:

1、百度地图官方文档URL·API 说明

/**
 * 打开百度地图
 * @param slat 开始地点 维度
 * @param slon 开始地点 经度
 * @param sname 开始地点 名字
 * @param dlat 终点地点 维度
 * @param dlon 终点地点 经度
 * @param dname 终点名字
 * @param city 所在城市- 动态获取 (例如:北京市)
 * @author jack
 * created at 2017/8/2 15:01
 */
private void openBaiduMap(double slat, double slon, String sname,
                          double dlat, double dlon, String dname, String city) {
    try {
        String uri = OpenLocalMapUtil.getBaiduMapUri(String.valueOf(slat), String.valueOf(slon), sname,
                String.valueOf(dlat), String.valueOf(dlon), dname, city, "");
        Intent intent = Intent.parseUri(uri, 0);
        startActivity(intent); //启动调用
    } catch (Exception e) {
        e.printStackTrace();
    }
}
3、OpenLocalMapUtil.getBaiduMapUri 方法

public static String getBaiduMapUri(String originLat, String originLon, String originName, String desLat, String desLon, String destination, String region, String src){
    String uri = "intent://map/direction?origin=latlng:%1$s,%2$s|name:%3$s" +
            "&destination=latlng:%4$s,%5$s|name:%6$s&mode=driving&region=%7$s&src=%8$s#Intent;" +
            "scheme=bdapp;package=com.baidu.BaiduMap;end";
    return String.format(uri, originLat, originLon, originName, desLat, desLon, destination, region, src);
}

外部打开高德地图进行导航:

1、高德地图官方文档URI·API --  高德地图为默认开始地点 只需要传入 终点坐标即可

2、

/**
* 打开高德地图 
* @author jack
* created at 2017/8/2 15:01
*/
private void openGaoDeMap(double dlat, double dlon, String dname) {
    try {
	// APP_NAME  自己应用的名字
        String uri = OpenLocalMapUtil.getGdMapUri(APP_NAME,
                String.valueOf(dlat),
                String.valueOf(dlon),
                dname);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setPackage("com.autonavi.minimap");
        intent.setData(Uri.parse(uri));
        startActivity(intent); //启动调用
    } catch (Exception e) {
        e.printStackTrace();
    }
}

3、OpenLocalMapUtil.getGdMapUri 方法

/**
 * 获取打开高德地图应用uri
 * style
 *导航方式(0 速度快; 1 费用少; 2 路程短; 3 不走高速;4 躲避拥堵;5
 *不走高速且避免收费;6 不走高速且躲避拥堵;
 *7 躲避收费和拥堵;8 不走高速躲避收费和拥堵)
 */
public static String getGdMapUri(String appName, String slat, String slon, String sname, String dlat, String dlon, String dname){
    String newUri = "androidamap://navi?sourceApplication=%1$s&poiname=%2$s&lat=%3$s&lon=%4$s&dev=1&style=2";
    return String.format(newUri, appName, dname, dlat, dlon);
}


外部打开腾讯地图网页版: 

1、腾讯地图官方文档说明 暂不支持外部app打开腾讯地图 (合作伙伴可以)

2、http://apis.map.qq.com/uri/v1/routeplan?type=bus&from=我的家&fromcoord=39.980683,116.302&to=中关村&tocoord=39.9836,116.3164&policy=1&referer=myapp

/**
 * 开发浏览器的腾讯地图
 * @param slat 开始坐标
 * @param slon
 * @param dlat 终点坐标
 * @param dlon
 */
private void selectTencent(double slat, double slon, String  sName, double dlat, double dlon, String dName) {
    double[] txDesLatLng = OpenLocalMapUtil.map_bd2hx(dlat, dlon);
    double[] txNowLatLng = OpenLocalMapUtil.map_bd2hx(slat, slon);
    String url = "http://apis.map.qq.com/uri/v1/routeplan?type=drive&from=&fromcoord="
            + txNowLatLng[0] + "," + txNowLatLng[1]
            + "&to=&tocoord=" + txDesLatLng[0] + "," + txDesLatLng[1] + "&policy=0&referer=myapp";
    // drive --- 驾车 -------policy=0 是较快捷
    String urljk = "http://apis.map.qq.com/uri/v1/routeplan?" +
            "type=" + "drive" +
            "&from=" + sName +"&fromcoord=" + slat + "," + slon +
            "&to=" + dName + "&tocoord=" + dlat + "," + dlon +
            "&policy=0" +
            "&referer=" + APP_NAME;
    Uri tencentUri = Uri.parse(url);
    Intent loction = new Intent(Intent.ACTION_VIEW, tencentUri);
    startActivity(loction);
}
 
 
 





  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值