如图
android开发百度地图搜索,如何让搜索到的内容用列表显示出来
答案:4 悬赏:50
解决时间 2021-03-12 11:32
- 提问者网友:喜遇你
- 2021-03-12 07:19
最佳答案
- 二级知识专家网友:夢想黑洞
- 2021-03-12 08:00
@Override
public void onGetPoiResult(MKPoiResult res, int type, int error) {
// TODO Auto-generated method stub
//搜索结果回调到这里
if (error == MKEvent.ERROR_RESULT_NOT_FOUND) {
Toast.makeText(FoodActivity.this, "抱歉,未找到结果",
Toast.LENGTH_LONG).show();
System.out.println("抱歉,未找到结果");
return;
} else if (error != 0 || res == null) {
Toast.makeText(FoodActivity.this, "搜索出错啦..",
Toast.LENGTH_LONG).show();
return;
}
PoiOverItem poiOverLay = new PoiOverItem(MainActivity.this,
bMapView, res.getAllPoi());
poiOverLay.setData(res.getAllPoi());
bMapView.getOverlays().add(poiOverLay);
bMapView.refresh();
// 定义一个list用于存放所搜索到的酒店
List<String> hotelName = new ArrayList<String>();
List<GeoPoint> JWpoints = new ArrayList<GeoPoint>();
for (MKPoiInfo info : res.getAllPoi()) {
System.out.println("搜索结果位置信息:" + info.address);
System.out.println("搜索结果城市信息:" + info.city);
System.out.println("搜索结果name:" + info.name);
System.out.println("酒店联系电话:" + info.phoneNum);
System.out.println("搜索结果经纬度:" + info.pt);
System.out.println("搜索结果ePoiType:" + info.ePoiType);
bMapView.getController().animateTo(info.pt);
// 将搜索到的酒店添加到list里面
hotelName.add(info.name);
//把所有的点添加到list中
JWpoints.add(info.pt);
// break;
}
}
不知道你用的是什么版本的百度地图,这是我之前做开发用到的,上面用的是一个MkSearch监听器,如果搜索到信息,监听器就会把结果回调到onGetPoiResult()这个方法里面,之后在这个方法里面操作数据。上面用list将所有的酒店名称以及经纬度存放进去,如果你想用一个lisview显示的话,就定义一个simpleAdapter,把这些数据放到adapter里面,之后在listview里面显示就可以了。
public void onGetPoiResult(MKPoiResult res, int type, int error) {
// TODO Auto-generated method stub
//搜索结果回调到这里
if (error == MKEvent.ERROR_RESULT_NOT_FOUND) {
Toast.makeText(FoodActivity.this, "抱歉,未找到结果",
Toast.LENGTH_LONG).show();
System.out.println("抱歉,未找到结果");
return;
} else if (error != 0 || res == null) {
Toast.makeText(FoodActivity.this, "搜索出错啦..",
Toast.LENGTH_LONG).show();
return;
}
PoiOverItem poiOverLay = new PoiOverItem(MainActivity.this,
bMapView, res.getAllPoi());
poiOverLay.setData(res.getAllPoi());
bMapView.getOverlays().add(poiOverLay);
bMapView.refresh();
// 定义一个list用于存放所搜索到的酒店
List<String> hotelName = new ArrayList<String>();
List<GeoPoint> JWpoints = new ArrayList<GeoPoint>();
for (MKPoiInfo info : res.getAllPoi()) {
System.out.println("搜索结果位置信息:" + info.address);
System.out.println("搜索结果城市信息:" + info.city);
System.out.println("搜索结果name:" + info.name);
System.out.println("酒店联系电话:" + info.phoneNum);
System.out.println("搜索结果经纬度:" + info.pt);
System.out.println("搜索结果ePoiType:" + info.ePoiType);
bMapView.getController().animateTo(info.pt);
// 将搜索到的酒店添加到list里面
hotelName.add(info.name);
//把所有的点添加到list中
JWpoints.add(info.pt);
// break;
}
}
不知道你用的是什么版本的百度地图,这是我之前做开发用到的,上面用的是一个MkSearch监听器,如果搜索到信息,监听器就会把结果回调到onGetPoiResult()这个方法里面,之后在这个方法里面操作数据。上面用list将所有的酒店名称以及经纬度存放进去,如果你想用一个lisview显示的话,就定义一个simpleAdapter,把这些数据放到adapter里面,之后在listview里面显示就可以了。
全部回答
- 1楼网友:旧事诱惑
- 2021-03-12 10:56
你是要知道你搜索的地址的地方有些什么具体在内容吗?按住你想知道的地图上的位置,下方就会有这个地方的一个具体名称出来,然后点击右边的“详情”。就能看到你之前按住的地方的所有百度上已经标记的内容了!希望采纳。
- 2楼网友:瘾与深巷
- 2021-03-12 10:47
首先你要开启定位图层
mbaidumap.setmylocationenabled(true);
定位成功后设置定位数据
mbaidumap.setmylocationdata(locdata);
然后移动地图中心点
centertolocation(location, 250);
protected void centertolocation(bdlocation location, int duration) {
latlng cenpt = new latlng(location.getlatitude(),location.getlongitude());
//定义地图状态,地图缩放级别 3~19
mapstatus newmapstatus = new mapstatus.builder().target(cenpt).zoom(16).build();
//定义mapstatusupdate对象,以便描述地图状态将要发生的变化
mapstatusupdate mmapstatusupdate = mapstatusupdatefactory.newmapstatus(newmapstatus);
//改变地图状态
mbaidumap.animatemapstatus(mmapstatusupdate, duration);
}
- 3楼网友:心痛成瘾
- 2021-03-12 09:25
搜索回来的是怎么样的数据
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯