1、調(diào)用高德地圖
高德地圖應(yīng)用包名:com.autonavi.minimap
高德地圖url說明:
http://lbs.amap.com/api/uri-api/guide/android-uri-explain/route/
判斷手機(jī)上是否安裝過高德地圖:
private boolean isInstallByread(String packageName) {
return new File("/data/data/" + packageName).exists();
}
調(diào)用方法:(此方法打開高德地圖后默認(rèn)顯示的公交路線規(guī)劃)
try {
if (isInstallByread("com.autonavi.minimap")) {
Intent intent = new Intent(
"android.intent.action.VIEW",
android.net.Uri.parse(
"androidamap://route?sourceApplication=你的應(yīng)用名" + "&dlat="+ currentLatitude//終點(diǎn)的經(jīng)度
+ "&dlon="+ currentLongitude//終點(diǎn)的緯度
+ "&dev=0" + "&t=1"));
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent);
} else {
Toast.makeText(context, "沒有安裝百度地圖客戶端,請(qǐng)先下載該地圖應(yīng)用", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
注意:高德給的url參數(shù)寫反了。API文檔上標(biāo)注的是dlat--終點(diǎn)緯度,dlon--終點(diǎn)經(jīng)度。這個(gè)寫反了!!!!
2、調(diào)用百度地圖
百度地圖應(yīng)用包名:com.baidu.BaiduMap
百度地圖url說明:
http://lbsyun.baidu.com/index.php?title=uri/api/android
判斷手機(jī)上是否安裝過百度地圖:(同上)
調(diào)用方法:(此方法打開百度地圖后默認(rèn)顯示的公交路線規(guī)劃)
try {
if (isInstallByread("com.baidu.BaiduMap")) {
Intent intent = new Intent();
intent.setData(Uri.parse("baidumap://map/direction?origin=name:我的位置|latlng:"
+locLongitude//起始點(diǎn)緯度
+","
+locLatitude//起始點(diǎn)經(jīng)度
+"&destination="
+currentLatitude//終點(diǎn)經(jīng)度
+","
+currentLongitude//終點(diǎn)緯度
+"&mode=transit&sy=0&index=0&target=1"));
intent.setPackage("com.baidu.BaiduMap");
startActivity(intent); // 啟動(dòng)調(diào)用
} else {
Toast.makeText(context, "沒有安裝百度地圖客戶端,請(qǐng)先下載該地圖應(yīng)用", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
注意1:下面這種格式中參數(shù)分別表示經(jīng)度和緯度
origin=39.98871,116.43234&destination=40.055878,116.307854
注意2:下面這種格式中,latlng參數(shù)分別表示緯度和經(jīng)度(跟上面正好相反)
origin=name:經(jīng)海路|latlng:39.98871,116.43234&destination=name:西直門