这是从sdk里抽取的源码:
@SuppressLint("WrongConstant")
private void openWebMap(RouteParaOption paraOption, Context context, int mode) {
StringBuilder var3 = new StringBuilder();
var3.append("http://api.map.baidu.com/direction?");
var3.append("origin=");
LatLng var4 = paraOption.getStartPoint();
if (SDKInitializer.getCoordType() == CoordType.GCJ02 && var4 != null) {
var4 = CoordTrans.gcjToBaidu(var4);
}
if (paraOption.getStartPoint() != null && paraOption.getStartName() != null && !paraOption.getStartName().equals("")) {
var3.append("latlng:");
var3.append(var4.latitude);
var3.append(",");
var3.append(var4.longitude);
var3.append("|");
var3.append("name:");
var3.append(paraOption.getStartName());
} else if (paraOption.getStartPoint() != null) {
var3.append(var4.latitude);
var3.append(",");
var3.append(var4.longitude);
} else {
var3.append(paraOption.getStartName());
}
LatLng var5 = paraOption.getEndPoint();
if (SDKInitializer.getCoordType() == CoordType.GCJ02 && var5 != null) {
var5 = CoordTrans.gcjToBaidu(var5);
}
var3.append("&destination=");
if (paraOption.getEndPoint() != null && paraOption.getEndName() != null && !paraOption.getEndName().equals("")) {
var3.append("latlng:");
var3.append(var5.latitude);
var3.append(",");
var3.append(var5.longitude);
var3.append("|");
var3.append("name:");
var3.append(paraOption.getEndName());
} else if (paraOption.getEndPoint() != null) {
var3.append(var5.latitude);
var3.append(",");
var3.append(var5.longitude);
} else {
var3.append(paraOption.getEndName());
}
String var6 = "";
switch (mode) {
case 0:
var6 = "driving";
break;
case 1:
var6 = "transit";
break;
case 2:
var6 = "walking";
}
var3.append("&mode=");
var3.append(var6);
var3.append("®ion=");
if (paraOption.getCityName() != null && !paraOption.getCityName().equals("")) {
var3.append(paraOption.getCityName());
} else {
var3.append("全国");
}
var3.append("&output=html");
var3.append("&src=");
var3.append(context.getPackageName());
Uri var7 = Uri.parse(var3.toString());
Intent var8 = new Intent();
var8.setAction("android.intent.action.VIEW");
var8.setFlags(268435456);
var8.setData(var7);
context.startActivity(var8);
}
这是调用方法:
/**
* 启动百度地图导航(Web)
*/
public void openBrowserMap() {
// LatLng pt1 = new LatLng(mLatitude, mLongitude);不传起始位置就是以网页定位的自己的位置为起始点
LatLng pt2 = new LatLng(mLatitude, mLongitude);
// 构建 导航参数
RouteParaOption para = new RouteParaOption()
.startPoint(null).endPoint(pt2).startName("我的位置").endName("目标位置");
try {
openWebMap(para, this, 0);
// BaiduMapRoutePlan.openBaiduMapDrivingRoute(para,this);
} catch (IllegalNaviArgumentException e) {
e.printStackTrace();
}
}
网友评论