百度地图:加强篇(范围+点检索)

核心类: MKSearch和MKSearchListener MKSearch用于位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索 int busLineSearch(String city, String busLineUid) 公交路线详细信息搜索 异步函数,返回结果在MKSearchListener里的onGetBusDetailResult方法通知
摘要由CSDN通过智能技术生成

核心类: MKSearch和MKSearchListener
MKSearch用于位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索

 int    busLineSearch(String city, String busLineUid) 
          公交路线详细信息搜索 异步函数,返回结果在MKSearchListener里的onGetBusDetailResult方法通知
 int    drivingSearch(String startCity, MKPlanNode start, String endCity, MKPlanNode end) 
          驾乘路线搜索.
 int    drivingSearch(String startCity, MKPlanNode start, String endCity, MKPlanNode end, ArrayList<MKWpNode> wpNodes) 
          驾车路线搜索,可设置途经点 异步函数,返回结果在MKSearchListener里的onGetDrivingRouteResult方法通知
 int    geocode(String strAddr, String city) 
          根据地址名获取地址信息 异步函数,返回结果在MKSearchListener里的onGetAddrResult方法通知
static int  getPoiPageCapacity() 
          返回每页容量
 int    goToPoiPage(int num) 
          获取指定页的的poi结果.
 boolean    init(BMapManager bmapMan, MKSearchListener listener) 
          初使化
 int    poiDetailSearch(String uid) 
          poi详细信息检索
 int    poiMultiSearchInbounds(String[] keys, GeoPoint ptLB, GeoPoint ptRT) 
          根据范围和检索词发起范围检索.
 int    poiMultiSearchNearBy(String[] keys, GeoPoint pt, int radius) 
          根据中心点、半径与检索词发起周边检索.
 int    poiSearchInbounds(String key, GeoPoint ptLB, GeoPoint ptRT) 
          根据范围和检索词发起范围检索.
 int    poiSearchInCity(String city, String key) 
          城市poi检索.
 int    poiSearchNearBy(String key, GeoPoint pt, int radius) 
          根据中心点、半径与检索词发起周边检索.
 int    reverseGeocode(GeoPoint pt) 
          根据地理坐标点获取地址信息 异步函数,返回结果在MKSearchListener里的onGetAddrResult方法通知
 int    setDrivingPolicy(int policy) 
          设置驾车路线规划策略.
static void setPoiPageCapacity(int num) 
          设置每页容量.
 int    setTransitPolicy(int policy) 
          设置路线规划策略.
 int    suggestionSearch(String key, String city) 
          联想词检索,根据模糊的不完备的检索词返回精确的建议搜索词 异步函数,返回结果在MKSearchListener里的onGetSuggestionResult方法通知
 int    transitSearch(String city, MKPlanNode start, MKPlanNode end) 
          公交路线搜索.
 int    walkingSearch(String startCity, MKPlanNode start, String endCity, MKPlanNode end) 
          步行路线搜索.

实现思路
初始化MKSearch类,通过init方法注册搜索结果的监听对象MKSearchListener,实现异步搜索服务。
通过自定义MySearchListener实现类,获得搜索结果。
注意,MKSearchListener只支持一个,以最后一次设置为准
1、实现目的:矩形区域加油站搜索
实现过程:
1、新建MKSearch的对象,然后用到public int poiSearchInbounds(String key,
GeoPoint ptLB,
GeoPoint ptRT)方法来进行对ptLB-ptRT矩形范围内key的搜索。返回结果在MKSearchListener里的onGetPoiResult方法通知。
2、由于MKSearchListener是一个接口,如果我们实现了这个接口就需要实现它里面的很多方法,这样影响代码修改的性能,我们新建了一个基类(BaseAdapter)来实现这个接口,然后新建一个MySearchListener来继承该类,仅实现我们需要的方法即可,此处需要用到onGetPoiResult方法来获的搜索结果。
3、对搜索结果进行展示:新建了一个PoiOverlay对象,然后给这个对象设置数据,并且将这个对象添加到overlays集合里面,然后刷新mapView。
4、为了使得我们点击poi有响应,我们设置了controller.enableClick(true);
// 让地图上的兴趣点可以被点击
5、设置Mainfest.xml的内容
注意:
poi检索结果每页容量默认情况下为10,可以通过setPoiPageCapacity设置,支持1-50(10)
翻页功能通过MKSearch类的goToPoiPage实现,该方法是异步函数,搜索成功后会调用注册的事件处理函数onGetPoiResult 返回查询页的结果。
支持分类搜索,例如mSearch.poiSearchInCity(“北京”, “娱乐”)

实现结果:
这里写图片描述
点击某个点,弹出吐司显示相应加油站名称。
这里写图片描述
BaseActivity .java

package huaxa.it.map;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.MKEvent;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值