首页 > 代码库 > Android应用中使用百度地图API之POI(三)

Android应用中使用百度地图API之POI(三)

先看运行后的图吧:



POI(Point of Interest),中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等  详细:http://developer.baidu.com/map/sdkandev-4.htm

主要应用 MKSearch 类:

com.baidu.mapapi.search

类 MKSearch

  • java.lang.Object
  • com.baidu.mapapi.search.MKSearch


  • public class MKSearch
    extends java.lang.Object
    搜索服务.

    用于位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索

    • 字段概要

      字段 
      限定符和类型字段和说明
      static intEBUS_NO_SUBWAY
      公交检索策略常量:不含地铁
      static intEBUS_TIME_FIRST
      公交检索策略常量:时间优先
      static intEBUS_TRANSFER_FIRST
      公交检索策略常量:最少换乘
      static intEBUS_WALK_FIRST
      公交检索策略常量:最少步行距离
      static intECAR_AVOID_JAM
      驾车策略: 躲避拥堵
      static intECAR_DIS_FIRST
      驾乘检索策略常量:最短距离
      static intECAR_FEE_FIRST
      驾乘检索策略常量:较少费用
      static intECAR_TIME_FIRST
      驾乘检索策略常量:时间优先
      static intPOI_DETAIL_SEARCH
      poi详细信息检索页面
      static intTYPE_AREA_MULTI_POI_LIST
      多关键字范围搜索、周边搜索poi列表
      static intTYPE_AREA_POI_LIST
      范围搜索、周边搜索poi列表
      static intTYPE_CITY_LIST
      城市列表
      static intTYPE_POI_LIST
      城市内搜索poi列表

方法概要

方法 
限定符和类型方法和说明
intbusLineSearch(java.lang.String city, java.lang.String busLineUid)
公交路线详细信息搜索 异步函数,返回结果在MKSearchListener里的onGetBusDetailResult方法通知
voiddestory()
销毁MKSearch 模块 , 当不再使用Search 功能时,需要调用此函数
intdrivingSearch(java.lang.String startCity, MKPlanNode start, java.lang.String endCity, MKPlanNode end)
驾乘路线搜索.
intdrivingSearch(java.lang.String startCity, MKPlanNode start, java.lang.String endCity, MKPlanNode end, java.util.List<MKWpNode> wpNodes)
驾车路线搜索,可设置途经点 异步函数,返回结果在MKSearchListener里的onGetDrivingRouteResult方法通知
intgeocode(java.lang.String strAddr, java.lang.String city)
根据地址名获取地址信息 异步函数,返回结果在MKSearchListener里的onGetAddrResult方法通知
intgetPoiPageCapacity()
返回每页容量
intgoToPoiPage(int num)
获取指定页的的poi结果.
booleaninit(BMapManager bmapMan, MKSearchListener listener)
初使化,使用完成后,请调用 destroy 函数释放资源
intpoiDetailSearch(java.lang.String uid)
poi详细信息检索
booleanpoiDetailShareURLSearch(java.lang.String poiUid)
获取POI信息共享短url.
booleanpoiRGCShareURLSearch(GeoPoint location, java.lang.String name, java.lang.String address)
获取地址信息共享短URL.
intpoiSearchInbounds(java.lang.String key, GeoPoint ptLB, GeoPoint ptRT)
根据范围和检索词发起范围检索.
intpoiSearchInCity(java.lang.String city, java.lang.String key)
城市poi检索.
intpoiSearchNearBy(java.lang.String key, GeoPoint pt, int radius)
根据中心点、半径与检索词发起周边检索.
intreverseGeocode(GeoPoint pt)
根据地理坐标点获取地址信息 异步函数,返回结果在MKSearchListener里的onGetAddrResult方法通知
intsetDrivingPolicy(int policy)
设置驾车路线规划策略.
voidsetPoiPageCapacity(int num)
设置每页容量.
intsetTransitPolicy(int policy)
设置路线规划策略.
intsuggestionSearch(java.lang.String key, java.lang.String city)
联想词检索,根据模糊的不完备的检索词返回精确的建议搜索词 异步函数,返回结果在MKSearchListener里的onGetSuggestionResult方法通知
inttransitSearch(java.lang.String city, MKPlanNode start, MKPlanNode end)
公交路线搜索.
intwalkingSearch(java.lang.String startCity, MKPlanNode start, java.lang.String endCity, MKPlanNode end)
步行路线搜索.

通过上面的阅读应该有所了解了吧,直接代码了。。

这里的代码和前面(http://blog.csdn.net/majianjie/article/details/27958929)的代码变化不大:

MainActivity.java

package com.majianjie.baidumap;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.LocationData;
import com.baidu.mapapi.map.MKEvent;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationOverlay;
import com.baidu.mapapi.map.PoiOverlay;
import com.baidu.mapapi.map.PopupClickListener;
import com.baidu.mapapi.map.PopupOverlay;
import com.baidu.mapapi.search.MKAddrInfo;
import com.baidu.mapapi.search.MKBusLineResult;
import com.baidu.mapapi.search.MKDrivingRouteResult;
import com.baidu.mapapi.search.MKPoiInfo;
import com.baidu.mapapi.search.MKPoiResult;
import com.baidu.mapapi.search.MKSearch;
import com.baidu.mapapi.search.MKSearchListener;
import com.baidu.mapapi.search.MKShareUrlResult;
import com.baidu.mapapi.search.MKSuggestionResult;
import com.baidu.mapapi.search.MKTransitRouteResult;
import com.baidu.mapapi.search.MKWalkingRouteResult;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.example.baidumap.R;

public class MainActivity extends Activity {

	//声明控件
		private Button request;
		private static StringBuilder sb = new StringBuilder();
		private int i=1;
		private Toast mToast=null;
		private BMapManager mBMapManager=null;
		private MapView mMapView = null;			//MapView 是地图主控件
		private MapController mMapController = null;//用MapController完成地图控制
		
		private LocationClient mLocClient; 
		 public LocationData mLocData = http://www.mamicode.com/null;>

有关性能的优化,这里不多讲解,正在学习中。。。/呵呵