外部打开百度地图进行导航:
/*** 打开百度地图*@paramslat开始地点 维度*@paramslon开始地点 经度*@paramsname开始地点 名字*@paramdlat终点地点 维度*@paramdlon终点地点 经度*@paramdname终点名字*@paramcity所在城市- 动态获取 (例如:北京市)*@authorjack* created at 2017/8/2 15:01*/private voidopenBaiduMap(doubleslat, doubleslon,String sname,doubledlat, doubledlon,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 staticStringgetBaiduMapUri(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®ion=%7$s&src=%8$s#Intent;"+"scheme=bdapp;package=com.baidu.BaiduMap;end";returnString.format(uri,originLat,originLon,originName,desLat,desLon,destination,region,src);}
外部打开高德地图进行导航:
1、高德地图官方文档URI·API-- 高德地图为默认开始地点 只需要传入 终点坐标即可
2、
/*** 打开高德地图*@authorjack* created at 2017/8/2 15:01*/private voidopenGaoDeMap(doubledlat, doubledlon,String dname) {try{
// APP_NAME 自己应用的名字String uri = OpenLocalMapUtil.getGdMapUri(APP_NAME,String.valueOf(dlat),String.valueOf(dlon),dname);Intent intent =newIntent(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 staticStringgetGdMapUri(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";returnString.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
/*** 开发浏览器的腾讯地图*@paramslat开始坐标*@paramslon*@paramdlat终点坐标*@paramdlon*/private voidselectTencent(doubleslat, doubleslon,String sName, doubledlat, doubledlon,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 =newIntent(Intent.ACTION_VIEW,tencentUri);startActivity(loction);}