百度map api for Android~搜索服务
来源:互联网 发布:淘宝申诉进程在哪看 编辑:程序博客网 时间:2024/04/30 12:42
首先看看百度 开发文档 地址 http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0/%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97#POI.E6.90.9C.E7.B4.A2.E5.8F.8APoiOverlay
为什么实现MKSearchListener 方法?因为实现位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索的这些函数,
都是异步函数,返回结果会在MKSearchListener里的方法通知。
下面是我自定义MySearchListener实现MKSearchListener接口
package rw.baidu.map2;import android.app.Activity;import com.baidu.mapapi.MKAddrInfo;import com.baidu.mapapi.MKDrivingRouteResult;import com.baidu.mapapi.MKPoiResult;import com.baidu.mapapi.MKSearch;import com.baidu.mapapi.MKSearchListener;import com.baidu.mapapi.MKTransitRouteResult;import com.baidu.mapapi.MKWalkingRouteResult;import com.baidu.mapapi.MapView;import com.baidu.mapapi.PoiOverlay;public class MySearchListener implements MKSearchListener { private MapView mapView;private Activity activity;public MySearchListener(MapView mapView, Activity activity) {super();this.mapView = mapView;this.activity = activity;}@Overridepublic void onGetAddrResult(MKAddrInfo arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {// TODO Auto-generated method stub//驾车路线通知函数}@Overridepublic void onGetPoiResult(MKPoiResult result, int type, int iError) {// TODO Auto-generated method stubif (result == null) {return;}PoiOverlay poioverlay = new PoiOverlay(activity, mapView);poioverlay.setData(result.getAllPoi());mapView.getOverlays().add(poioverlay);}@Overridepublic void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {// TODO Auto-generated method stub//步行路线通知函数}}首先实例化MKSearch类的一个对象
public boolean init(BMapManager bmapMan, MKSearchListener listener) 初使化 参数: bmapMan - 实例化的BMapManger 返回: 成功返回true,否则返回false
drivingSearch(java.lang.String startCity, MKPlanNode start, java.lang.String endCity, MKPlanNode end)
驾乘路线搜索.
下面是官方文档的一段解释
public int drivingSearch(java.lang.String startCity, MKPlanNode start, java.lang.String endCity, MKPlanNode end)
- 驾乘路线搜索.
异步函数,返回结果在MKSearchResultNotifier里的onGetDrivingRouteResult方法通知
- 参数:
startCity
- 起点所在城市,起点为坐标或uid时可不填start
- 搜索的起点,可以为坐标,名称,uid任一种endCity
- 终点所在城市,终点为坐标或uid时可不填end
- 搜索的终点,可以为坐标,名称,uid任一种- 返回:
- 成功返回0,否则返回-1
- 下面的start 是坐标,end 也是坐标
检索从天安门到百度大厦的驾车路线: MKPlanNode start = new MKPlanNode(); start.pt = new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)); MKPlanNode end = new MKPlanNode(); end.pt = new GeoPoint(40057031, 116307852); // 设置驾车路线搜索策略,时间优先、费用最少或距离最短 mMKSearch.setDrivingPolicy(MKSearch.ECAR_TIME_FIRST); mMKSearch.drivingSearch(null, start, null, end);驾车线路搜索策略包括以下
static int
ECAR_DIS_FIRST
驾乘检索策略常量:最短距离
static int
ECAR_FEE_FIRST
驾乘检索策略常量:较少费用
static int
ECAR_TIME_FIRST
驾乘检索策略常量:时间优先
步行线路搜索 walkingSearch(java.lang.String startCity,MKPlanNode start, java.lang.String endCity,MKPlanNode end)
public int walkingSearch(java.lang.String startCity, MKPlanNode start, java.lang.String endCity, MKPlanNode end) 步行路线搜索. 异步函数,返回结果在MKSearchResultNotifier里的onGetWalkingRouteResult方法通知 参数: startCity - 起点所在城市,起点为坐标或uid时可不填 start - 搜索的起点,可以为坐标,名称,uid任一种 endCity - 终点所在城市,终点为坐标或uid时可不填 end - 搜索的终点,可以为坐标,名称,uid任一种 返回: 成功返回0,否则返回-1
检索从天安门到百度大厦的步行路线: MKPlanNode start = new MKPlanNode(); start.pt = new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)); MKPlanNode end = new MKPlanNode(); end.pt = new GeoPoint(40057031, 116307852); mMKSearch.walkingSearch(null, start, null, end);
公交路线搜索.transitSearch(java.lang.String city,MKPlanNode start,MKPlanNode end)
public int transitSearch(java.lang.String city, MKPlanNode start, MKPlanNode end)
public int transitSearch(java.lang.String city, MKPlanNode start, MKPlanNode end) 公交路线搜索. 异步函数,返回结果在MKSearchResultNotifier里的onGetTransitRouteResult方法通知 参数: city - 城市名,用于在哪个城市内进行检索 start - 检索的起点,可通过关键字,坐标,poi uid三种方式指定 end - 检索的终点,可通过关键字,坐标,poi uid三种方式指定 返回: 成功返回0,否则返回-1
检索从天安门到百度大厦的公交路线: MKPlanNode start = new MKPlanNode(); start.pt = new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)); MKPlanNode end = new MKPlanNode(); end.pt = new GeoPoint(40057031, 116307852); mkSearch.transitSearch("北京", start, end);
POI搜索及PoiOverlay
中国POI(Point of Interest)数据库, POI是“Point of Interest”的缩写,每个POI包含四方面信息,名称、类别、经度、纬度。 这个计划的远景目标是建立全国的POI数据库,并且全部开放。 目前POI数据库计划已经发布有北京市区POI数据16000条,全国村镇POI数据8万余条。全国其它地区的POI数据正在搜集整理中,同时还有一个全国公路收费站POI数据的计划也在进行。下面是三种POI搜索方式,根据范围和检索词发起范围检索poiSearchInbounds,城市poi检索poiSearchInCity,周边检索poiSearchNearBy。
下面是代码实现
class MyButton implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(b1.isChecked()){ mkSearch=new MKSearch(); mkSearch.init(mBMapMan, new MySearchListener(mMapView, Baidumap2Activity.this)); //根据范围和检索词发起范围检索. /* * 根据一个检索词,范围5000米 */ mkSearch.poiSearchInbounds("北京天安门", new GeoPoint((int) (37.915 * 1E6), (int) (114.404 * 1E6)),new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6))); /* * 根据多个检索词。范围5000米 */ mkSearch.poiMultiSearchInbounds(new String[]{"北京天安门","王府井大饭店"}, new GeoPoint((int) (37.915 * 1E6), (int) (114.404 * 1E6)),new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6))); }if(b2.isChecked()){ mkSearch=new MKSearch(); mkSearch.init(mBMapMan, new MySearchListener(mMapView, Baidumap2Activity.this)); mkSearch.poiSearchInCity("北京", "天安门");}if(b3.isChecked()){ mkSearch=new MKSearch(); mkSearch.init(mBMapMan, new MySearchListener(mMapView, Baidumap2Activity.this)); /* * 根据一个检索词,范围5000米 */ mkSearch.poiSearchNearBy(editText.getText().toString(),new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)), 5000); /* * 根据多个检索词,范围5000米 */ mkSearch.poiMultiSearchNearBy(new String[]{"北京天安门","王府井大饭店"},new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)), 5000);}} }
- 百度map api for Android~搜索服务
- 关于百度map API for Android的mobile ak 102错误
- 百度地图SDK for Android【检索服务】
- 百度地图SDK for Android【检索服务】
- 百度Map API
- 百度Map API初试
- 百度音乐搜索API
- 百度图片搜索api
- ArcGIS API for Android 定位服务
- arcgis api for android 调用 wms服务
- 百度地图 搜索服务
- 百度搜索开放平台,百度搜索api
- API搜索服务
- [012] 百度地图API之公交换乘方案搜索(Android)
- 百度地图API Android SDK开发笔记三关键字搜索
- Android百度地图API 之 定位周边搜索POI
- [012] 百度地图API之公交换乘方案搜索(Android) .
- 百度地图API之公交换乘方案搜索(Android) .(12)
- 多线程(线程安全、线程间通信、1.5中的Lock)总结2
- 禁用ipv6
- POJ 2535 Very Simple Problem(我的水题之路——看错题)
- hbase0.90.4安装总结
- ISTQB AL-TM连载系列02:确定软件产品发布中的测试因素
- 百度map api for Android~搜索服务
- hibernate调用存储过程
- 堆和栈的区别 (转贴)
- finish、killProcess 使用必知_one App two Activity
- 高并发高流量网站架构
- 通过hibernate去调用存储过程
- 了解RO、RW、ZI和.text .bss .data
- cisco交换机配置
- 编程珠玑第四章-编写正确的程序