android poi搜索提示搜索对象已销毁,Android 百度地图POI检索之显示单次搜索的所有结果...

/**

* 演示poi搜索功能

*/

public class PoiSearchDemo extends Activity {

/** 百度地图 */

private MapView mapView;

/** 定义 BaiduMap 地图对象的操作方法与接口 */

private BaiduMap baiduMap;

private PoiSearch poiSearch;

/** 搜索关键词 */

private final String keyword = "餐厅";

/** 每页容量50 */

private final int pageCapacity = 50;

/** 第一页 */

private final int pageNum = 0;

/** 搜索半径10km */

private final int radius = 10000;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.map);

initView();

initData();

}

private void initView() {

mapView = (MapView) findViewById(R.id.mapView);

// 是否显示自带缩放控件

mapView.showZoomControls(false);

}

private void initData() {

baiduMap = mapView.getMap();

// 初始化搜索模块

poiSearch = PoiSearch.newInstance();

// 注册搜索事件监听

poiSearch

.setOnGetPoiSearchResultListener(new PoiSearchResultListener());

// 搜索该坐标附近的餐厅

poiSearch.searchNearby(new PoiNearbySearchOption().keyword(keyword)

.location(new LatLng(39.904965, 116.327764))

.pageCapacity(pageCapacity).pageNum(pageNum).radius(radius));

}

@Override

protected void onPause() {

mapView.onPause();

super.onPause();

}

@Override

protected void onResume() {

mapView.onResume();

super.onResume();

}

@Override

protected void onDestroy() {

// 销毁搜索模块

poiSearch.destroy();

// 关闭定位图层

baiduMap.setMyLocationEnabled(false);

mapView.onDestroy();

mapView = null;

super.onDestroy();

}

private class PoiSearchResultListener implements

OnGetPoiSearchResultListener {

@Override

public void onGetPoiDetailResult(PoiDetailResult result) {

if (result.error != SearchResult.ERRORNO.NO_ERROR) {

} else {

Toast.makeText(getApplicationContext(),

result.getName() + ": " + result.getAddress(), 0)

.show();

}

}

@Override

public void onGetPoiResult(PoiResult result) {

if ((result == null)

|| (result.error == SearchResult.ERRORNO.RESULT_NOT_FOUND)) {

return;

}

if (result.error == SearchResult.ERRORNO.NO_ERROR) {

baiduMap.clear();

MyPoiOverlay overlay = new MyPoiOverlay(baiduMap);

baiduMap.setOnMarkerClickListener(overlay);

overlay.setData(result);

overlay.addToMap();

// 缩放地图,使所有Overlay都在合适的视野内

overlay.zoomToSpan();

return;

}

if (result.error == SearchResult.ERRORNO.AMBIGUOUS_KEYWORD) {

}

}

}

private class MyPoiOverlay extends OverlayManager {...}

}

这里与官方的demo很相似,不同的是MyPoiOverlay这个类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您想要在Android应用程序中使用腾讯地图的POI搜索功能,您可以使用腾讯地图SDK提供的API来实现。以下是一些基本步骤: 1. 首先,您需要在腾讯地图开发者平台上注册并创建一个应用程序,以获取API密钥。 2. 接下来,在您的Android项目中添加腾讯地图SDK库的依赖项,并在您的代码中初始化地图。 3. 然后,使用TencentMap对象searchPoi()方法来执行POI搜索。您可以指定搜索的关键字、搜索区域、搜索半径等参数,以便精确地返回您需要的结果。 4. 最后,您可以在回调函数中处理搜索结果并在地图上显示它们。 下面是一个简单的示例代码,展示如何在Android应用程序中使用腾讯地图SDK进行POI搜索: ``` // 初始化地图 TencentMap tencentMap = mapView.getMap(); // 执行POI搜索 tencentMap.searchPoi(new PoiSearch.Query("酒店", "上海", 10)); tencentMap.setOnPoiSearchListener(new PoiSearch.OnPoiSearchListener() { @Override public void onPoiSearched(PoiResult poiResult, int i) { // 处理搜索结果 List<PoiItem> poiItems = poiResult.getPois(); for (PoiItem poiItem : poiItems) { // 在地图上显示POI Marker marker = tencentMap.addMarker(new MarkerOptions() .position(poiItem.getLatlng()) .title(poiItem.getTitle()) .snippet(poiItem.getAddress())); } } @Override public void onPoiItemSearched(PoiItem poiItem, int i) { // 不需要处理 } }); ``` 这个例子中,我们在上海市搜索酒店,搜索结果会返回一个PoiResult对象,其中包含了符合搜索条件的所有POI信息。我们遍历这些POI,并将它们在地图上显示为标记(Marker)的形式。 请注意,这只是一个简单的示例代码,实际的应用程序中可能需要更多的参数和逻辑来满足您的需求。 ### 回答2: Android腾讯地图提供了丰富的POI搜索功能,用户可以通过POI搜索找到附近的商店、餐厅、景点等。 使用Android腾讯地图进行POI搜索十分简单。首先,需要在Android应用中集成腾讯地图SDK,可以通过导入相关的库和配置文件来实现。接着,在应用中创建地图视图,并初始化地图。通过地图控制器,可以调用腾讯地图的POI搜索功能。 实际进行POI搜索时,用户需要输入关键字和搜索范围。关键字可以是商店、餐厅的名称,也可以是景点的名称等。搜索范围可以是当前位置周围一定的半径范围内,也可以是指定的地点或者行政区域。 当用户输入关键字和搜索范围后,应用通过调用腾讯地图SDK的POI搜索接口,发送请求到腾讯地图服务器。服务器会返回相关的搜索结果,包括匹配的POI数据和对应的位置信息。 应用可以根据搜索结果,在地图上标记出相应的POI位置,并显示相关的信息。用户可以通过点击标记,查看更详细的POI信息,比如评分、地址、电话等。此外,用户还可以根据自己的需求,进行进一步的操作,比如导航到该POI位置、收藏该POI等。 总体而言,Android腾讯地图提供的POI搜索功能,可以帮助用户方便快捷地找到附近的商店、餐厅、景点等。用户可以通过简单的操作,轻松地实现POI搜索功能,并获取相关的信息。 ### 回答3: 腾讯地图是一款广受欢迎的手机地图应用程序,它是Android系统中一种常用的地图导航工具。腾讯地图提供了丰富的POI(兴趣点)搜索功能,使用户可以方便地找到所需的地点和附近的服务设施。 在腾讯地图中使用POI搜索功能非常简单。首先,打开腾讯地图应用程序并定位到你想要搜索的位置。然后,在地图界面上方的搜索栏中输入你感兴趣的地点,例如:餐厅、医院、超市等。随后,腾讯地图会自动搜索显示与你输入的关键词相关的POI结果。 腾讯地图的POI搜索功能具有高效、准确和实用的特点。它不仅仅提供了地点名称和地址信息,还可以显示距离、导航路线、用户评价等相关信息。同时,腾讯地图还支持筛选功能,可以根据不同需求和偏好进行筛选,例如:按距离、评价等进行排序。 此外,腾讯地图还提供了一些其他有用的POI搜索功能,例如:周边搜索、分类搜索和多关键词搜索等。通过这些功能,用户可以更精确地找到目标位置或服务设施,并根据自己的需求进行选择。 总而言之,Android腾讯地图的POI搜索功能为用户提供了便捷、准确和实用的地图导航服务。无论是出行还是旅行,用户都可以通过腾讯地图轻松找到所需的地点,并获得相关的信息和导航路线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值