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

来源:互联网 发布:搜狗大数据研究院 编辑:程序博客网 时间:2024/05/20 22:40

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

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);}





阅读全文
1 0