Intent intent = null;
try {// 如果有安装百度地图 就启动百度地图
StringBuffer sbs = new StringBuffer();
sbs.append("intent://map/direction?origin=latlng:")
// 我的位置
.append(latitude)
.append(",")
.append(longitude)
.append("|name:")
.append(getResources().getString(R.string.location))
// 去的位置
.append("&destination=latlng:")
.append(overlayItem.getPoint().getLatitudeE6() / 1E6) // 经度
.append(",")
.append(overlayItem.getPoint().getLongitudeE6() / 1E6)// 纬度
.append("|name:")
.append(overlayItem.getSnippet().replaceAll("nbsp;|&", ""))
// 城市
.append("&mode=driving®ion=")
.append(App.area_name)
.append("&referer=com.menu|menu#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
try {
intent = Intent.getIntent(sbs.toString());
} catch (URISyntaxException e) {
e.printStackTrace();
}
startActivity(intent);
} catch (Exception e) {// 没有百度地图则弹出网页端
StringBuffer sb = new StringBuffer();
sb.append("http://api.map.baidu.com/direction?origin=latlng:")
// 我的位置
.append(latitude)
.append(",")
.append(longitude)
.append("|name:")
.append(getResources().getString(R.string.location))
// 去的位置
.append("&destination=latlng:")
.append(overlayItem.getPoint().getLatitudeE6() / 1E6)
.append(",")
.append(overlayItem.getPoint().getLongitudeE6() / 1E6)
.append("|name:")
.append(overlayItem.getSnippet().replaceAll("nbsp;|&", ""))
// 城市
.append("&mode=driving®ion=").append(App.area_name)
.append("&output=html");
Uri uri = Uri.parse(sb.toString());
intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
根据两个经纬度点调用百度地图应用查询路线 适用android或者ios中及网页浏览(手机网页同样适用)
检测是否安装百度地图 不过我这种捕获异常的方式检测百度地图是否安装不太好 来读取安装程序中是否有百度地图的方式比较正确 不过没必要 还是异常捕获吧
在应用中试了好多次才通过 写一个博客记录一下
ios怎么获取连接同上
3.7 公交、驾车、步行导航
3.7.1 服务地址
本文详细介绍了如何在Android应用中通过调用百度地图API实现公交、驾车、步行导航功能,包括检测百度地图安装状态、构建URL并启动地图应用或打开网页版导航的方法。
4750

被折叠的 条评论
为什么被折叠?



