1.自己的app应用
点击导航即可跳转到百度地图app的详情页展示:
实现代码:
if(!isInstallByread("com.baidu.BaiduMap")){
ShowToast.showToast("未安装百度地图",Activity_DiTu.this,false);
return;
}
Intent intent = null;
try {
intent = Intent.getIntent("intent://map/place/detail?uid="+hoteluid+"&src" +
"=thirdapp.detail.yourCompanyName.tutengjiudian#Intent;scheme=bdapp;package=com" +
".baidu.BaiduMap;end");
} catch (URISyntaxException e) {
e.printStackTrace();
}
startActivity(intent); //启动调用
判断手机是否安装了百度地图:
private boolean isInstallByread(String packageName) {
return new File("/data/data/" + packageName).exists();
}
实现代码百度地图api,URLapi里面有例子
说明:
关于需要展示的uid的获取的。实际上没找到可以明确查找uid的方法,因为需求,所以此处是先通过代码获取uid,然后把uid给后台服务器,让服务器接口返回给android端
拿到uid的代码:
初始化:
posPoiSearch=PoiSearch.newInstance();
posPoiSearch.setOnGetPoiSearchResultListener(new MyListener());
实现搜索监听事件
class MyListener implements OnGetPoiSearchResultListener{
@Override
public void onGetPoiDetailResult(PoiDetailResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onGetPoiResult(PoiResult arg0) {
// TODO Auto-generated method stub
List<PoiInfo> allPoi = arg0.getAllPoi();
for(int i=0;i<allPoi.size();i++){
Log.i("测试", "uid "+allPoi.get(i).uid);
Log.i("测试", "地址 "+allPoi.get(i).address);
Log.i("测试", "name "+allPoi.get(i).name);
}
}
}
实现搜索参数配置:
<pre name="code" class="java"> public void btnOnclick(View view){
/* PoiCitySearchOption city=new PoiCitySearchOption();
city.city("成都");
city.keyword("酒店");
city.pageNum(10);
city.pageCapacity(arg0)
posPoiSearch.searchInCity(city);//发起检索这个动作
*/
PoiNearbySearchOption near=new PoiNearbySearchOption();
near.location(new LatLng(30.649499,104.064682));
near.radius(1000);
near.keyword("酒店");
near.pageCapacity(100);
posPoiSearch.searchNearby(near);
}
然后可以根据log的输出找到需要的地址的uid,然后可以根据这个uid跳转到百度地图详情页。
更好的获取uid的方式正在查找资料中