百度地图

转载请说明出处!

  • 开发工具:android studio 2.2.3
  • 测试手机:夜神模拟器,华为MT2
  • 百度地图版本:4.3.0

效果图:

Map.gif

Activity:

package com.wentong.zt.map;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Button;
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.location.LocationClientOption.LocationMode;
import com.baidu.location.Poi;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.core.PoiInfo;
import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.geocode.GeoCodeResult;
import com.baidu.mapapi.search.geocode.GeoCoder;
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener;
import com.baidu.mapapi.search.poi.PoiDetailResult;
import com.baidu.mapapi.search.poi.PoiIndoorResult;
import com.baidu.mapapi.search.poi.PoiNearbySearchOption;
import com.baidu.mapapi.search.poi.PoiResult;
import com.baidu.mapapi.search.poi.PoiSearch;

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

public class MainActivity extends AppCompatActivity {

/**
 * 我的位置
 */
private Button btn_myPosition;
/**
 * 地图
 */
private MapView mapView;
/**
 * 当前位置信息
 */
private TextView tv_myPosition;
/**
 * 卡片
 */
private CardView cardView;
/**
 * 定义 BaiduMap 地图对象的操作方法与接口
 */
private BaiduMap baiduMap;
/**
 * 定位服务的客户端。宿主程序在客户端声明此类,并调用,目前只支持在主线程中启动
 */
private LocationClient locationClient;
/**
 * 定位请求回调接口
 */
private BDLocationListener listener = new MyLocationListener();
/**
 * 是否第一次定位
 */
private boolean isFirstLogin = true;
/**
 * 纬度
 */
private double latitude;
/**
 * 经度
 */
private double longitude;
/**
 * POI检索接口
 */
PoiSearch poiSearch;
/**
 * 展示列表
 */
private RecyclerView recycler;
/**
 * RecyclerView适配器
 */
AdapterRecyclerView adapter;
/**
 * 地理编码查询接口
 */
GeoCoder geocode;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //在使用SDK各组件之前初始化context信息,传入ApplicationContext 注意该方法要再setContentView方法之前实现
    SDKInitializer.initialize(getApplicationContext());
    setContentView(R.layout.activity_main);

    initView();
}

/**
 * create at 2017/4/13 13:37
 * 方法名:initView
 * 

* 方法说明: 初始化界面 *

*/ private void initView() { //绑定控件 btn_myPosition = (Button) findViewById(R.id.act_main_btn_myPosition); mapView = (MapView) findViewById(R.id.act_main_mapView); recycler = (RecyclerView) findViewById(R.id.act_main_recycler); tv_myPosition = (TextView) findViewById(R.id.act_main_tv_myPosition); cardView = (CardView) findViewById(R.id.act_main_cardView); //recyclerView属性设置 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recycler.setLayoutManager(linearLayoutManager); //实例化定位服务的客户端 locationClient = new LocationClient(getApplicationContext()); //注册监听函数 locationClient.registerLocationListener(listener); //配置定位SDK各配置参数,比如定位模式、定位时间间隔、坐标系类型等 LocationClientOption option = new LocationClientOption(); option.setLocationMode(LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备 option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系 int span = 1000; option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的 option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要 option.setOpenGps(true);//可选,默认false,设置是否使用gps option.setLocationNotify(true);//可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果 option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近” option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到 option.setIgnoreKillProcess(false);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死 option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集 option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤GPS仿真结果,默认需要 //地图对象的操作方法与接口 baiduMap = mapView.getMap(); baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//设置地图类型 MAP_TYPE_NORMAL 普通图; MAP_TYPE_SATELLITE 卫星图;MAP_TYPE_NONE 卫星图 baiduMap.setBuildingsEnabled(true);//设置是否允许楼块效果 baiduMap.setMyLocationEnabled(true);//设置是否允许定位图层 locationClient.setLocOption(option); locationClient.start();//开始定位 //实例化recyclerView适配器 adapter = new AdapterRecyclerView(this); //地图移动监听 baiduMap.setOnMapStatusChangeListener(onMapStatusChangeListener); //我的位置点击事件 btn_myPosition.setOnClickListener(onClickListener); } //地图状态改变相关接口 BaiduMap.OnMapStatusChangeListener onMapStatusChangeListener = new BaiduMap.OnMapStatusChangeListener() { /** * 手势操作地图,设置地图状态等操作导致地图状态开始改变。 * @param status 地图状态改变开始时的地图状态 */ @Override public void onMapStatusChangeStart(MapStatus mapStatus) { } /** * 地图状态变化中 * @param status 当前地图状态 */ @Override public void onMapStatusChange(MapStatus mapStatus) { } /** * 地图状态改变结束 * @param status 地图状态改变结束后的地图状态 */ @Override public void onMapStatusChangeFinish(MapStatus mapStatus) { LatLng latLng = baiduMap.getMapStatus().target; if (geocode == null) {//如果地理编码查询接口为空 geocode = GeoCoder.newInstance();//获取其唯一实例化 } geocode.setOnGetGeoCodeResultListener(onGetGeoCoderResultListener);//设置查询结果监听者 geocode.reverseGeoCode(new ReverseGeoCodeOption().location(latLng));//发起反地理编码请求(经纬度->地址信息) retrieval(latLng); } } ; //点击事件 View.OnClickListener onClickListener = new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()){ case R.id.act_main_btn_myPosition: LatLng latLng = new LatLng(latitude, longitude);//地理坐标基本数据结构 MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(latLng, 16f);//描述地图状态将要发生的变化 baiduMap.animateMapStatus(mapStatusUpdate);//以动画方式更新地图状态,动画耗时 300 ms break; } } } ; //地理编码/反地理编码结果 OnGetGeoCoderResultListener onGetGeoCoderResultListener = new OnGetGeoCoderResultListener() { @Override public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) { if (geoCodeResult == null || geoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {//没有检索到结果 return; } Log.e("地理编码结果", geoCodeResult.getAddress().toString()); Toast.makeText(MainActivity.this, geoCodeResult.getAddress().toString(), Toast.LENGTH_SHORT).show(); } @Override public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) { if (reverseGeoCodeResult == null || reverseGeoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {//没有找到检索结果 return; } Log.e("反 Geo Code 结果", reverseGeoCodeResult.getAddress().toString()); if (cardView.getVisibility() == cardView.GONE) { cardView.setVisibility(cardView.VISIBLE); } //reverseGeoCodeResult.getAddress()简要地址信息 tv_myPosition.setText(reverseGeoCodeResult.getAddress().toString()); } }; /** * create at 2017/4/12 11:23 * 方法名:retrieval *

* 方法说明: 检索周边位置 *

*/ private void retrieval(LatLng latLng) { poiSearch = PoiSearch.newInstance();//创建POI检索实例 poiSearch.setOnGetPoiSearchResultListener(poiListener);//设置POI检索监听者 poiSearch.searchNearby(new PoiNearbySearchOption() .keyword("小")//检索关键字 .radius(100)//设置检索的半径范围 .location(latLng)//检索位置 .pageNum(10) .pageCapacity(10));//发起检索请求 } //创建POI检索监听者 OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener() { @Override public void onGetPoiResult(PoiResult poiResult) {//获取POI检索结果 Log.e("PoiResult", "城市:" + poiResult.getAllPoi().get(0).city + "/n名称:" + poiResult.getAllPoi().get(0).name + "/n地址:" + poiResult.getAllPoi().get(0).address); List list_poi = poiResult.getAllPoi(); //获取Poi检索结果 for (PoiInfo p : list_poi) { Log.e("poi地址信息", p.address); Log.e("poi所在城市", p.city); Log.e("poi名称", p.name); Log.e("poi类型", p.type + ""); } ArrayList arr = (ArrayList) poiResult.getAllPoi(); adapter.setArrayList(arr); recycler.setAdapter(adapter); } @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {//获取Place详情页检索结果 Log.e("PoiDetailResult", "进入了PoiDetailResult方法"); } @Override public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {//获取室内POI搜索结果 Log.e("PoiIndoorResult", "进入了PoiIndoorResult方法"); } }; public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { //获取定位结果 StringBuffer sb = new StringBuffer(256); sb.append("time : "); sb.append(location.getTime()); //获取定位时间 sb.append("\nerror code : "); sb.append(location.getLocType()); //获取类型类型 sb.append("\nlatitude : "); sb.append(location.getLatitude()); //获取纬度信息 sb.append("\nlontitude : "); sb.append(location.getLongitude()); //获取经度信息 sb.append("\nradius : "); sb.append(location.getRadius()); //获取定位精准度 if (location.getLocType() == BDLocation.TypeGpsLocation) { // GPS定位结果 sb.append("\nspeed : "); sb.append(location.getSpeed()); // 单位:公里每小时 sb.append("\nsatellite : "); sb.append(location.getSatelliteNumber()); //获取卫星数 sb.append("\nheight : "); sb.append(location.getAltitude()); //获取海拔高度信息,单位米 sb.append("\ndirection : "); sb.append(location.getDirection()); //获取方向信息,单位度 sb.append("\naddr : "); sb.append(location.getAddrStr()); //获取地址信息 sb.append("\ndescribe : "); sb.append("gps定位成功"); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) { // 网络定位结果 sb.append("\naddr : "); sb.append(location.getAddrStr()); //获取地址信息 sb.append("\noperationers : "); sb.append(location.getOperators()); //获取运营商信息 sb.append("\ndescribe : "); sb.append("网络定位成功"); } else if (location.getLocType() == BDLocation.TypeOffLineLocation) { // 离线定位结果 sb.append("\ndescribe : "); sb.append("离线定位成功,离线定位结果也是有效的"); } else if (location.getLocType() == BDLocation.TypeServerError) { sb.append("\ndescribe : "); sb.append("服务端网络定位失败,可以反馈IMEI号和大体定位时间到[email protected],会有人追查原因"); } else if (location.getLocType() == BDLocation.TypeNetWorkException) { sb.append("\ndescribe : "); sb.append("网络不同导致定位失败,请检查网络是否通畅"); } else if (location.getLocType() == BDLocation.TypeCriteriaException) { sb.append("\ndescribe : "); sb.append("无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机"); } sb.append("\nlocationdescribe : "); sb.append(location.getLocationDescribe()); //位置语义化信息 List list = location.getPoiList(); // POI数据 if (list != null) { sb.append("\npoilist size = : "); sb.append(list.size()); for (Poi p : list) { sb.append("\npoi= : "); sb.append(p.getId() + " " + p.getName() + " " + p.getRank()); } } Log.i("BaiduLocationApiDem", sb.toString()); latitude = location.getLatitude(); longitude = location.getLongitude(); // map view 销毁后不在处理新接收的位置 if (location == null || mapView == null) return; MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) .direction(100)// 此处设置开发者获取到的方向信息,顺时针0-360 .latitude(location.getLatitude()) .longitude(location.getLongitude()) .build(); baiduMap.setMyLocationData(locData); if (isFirstLogin) {//如果是第一次加载地图 isFirstLogin = false; LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());//地理坐标基本数据结构 MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);//设置地图中心点以及缩放级别 baiduMap.animateMapStatus(u);//以动画方式更新地图状态,动画耗时 300 ms retrieval(new LatLng(latitude, longitude));//检索周边信息 geocode = GeoCoder.newInstance();//获取新建地理编码查询 geocode.setOnGetGeoCodeResultListener(onGetGeoCoderResultListener);//设置查询结果监听者 geocode.reverseGeoCode(new ReverseGeoCodeOption().location(ll));//发起反地理编码请求(经纬度->地址信息) } } @Override public void onConnectHotSpotMessage(String s, int i) { } } @Override protected void onPause() { mapView.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 super.onPause(); } @Override protected void onDestroy() { mapView.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 if (poiSearch != null) { poiSearch.destroy(); } if (geocode != null) { geocode.destroy(); } super.onDestroy(); } @Override protected void onRestart() { mapView.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 super.onRestart();}}

XML:






    

AdapterRecyclerView:

package com.wentong.zt.map;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.baidu.mapapi.search.core.PoiInfo;
import java.util.ArrayList;
import static com.baidu.location.h.j.ar;
/**
 * Created by Administrator on 2017/4/12.
 */

public class AdapterRecyclerView extends RecyclerView.Adapter{


Context context ;
ArrayList arrayList ;

public AdapterRecyclerView(Context context) {
    this.context = context;
    arrayList = new ArrayList<>() ;
}

public ArrayList getArrayList() {
    return arrayList;
}

public void setArrayList(ArrayList arrayList) {
    this.arrayList = arrayList;
}

@Override
public My onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.adapter_recycler , parent , false) ;
    My my = new My(view) ;
    return my;
}

@Override
public void onBindViewHolder(My holder, int position) {
    holder.tv_city.setText(arrayList.get(position).address);
    holder.tv_name.setText(arrayList.get(position).name);
}

@Override
public int getItemCount() {
    return arrayList.size();
}

class My extends RecyclerView.ViewHolder{

    TextView tv_name , tv_city ;
    public My(View itemView) {
        super(itemView);
        tv_name = (TextView) itemView.findViewById(R.id.ada_recycler_tv_name) ;
        tv_city = (TextView) itemView.findViewById(R.id.ada_recycler_tv_city) ;
    }
}
 }

adapter_recycler XML:

 




    

        

        

    




题外话:

  • 整理思路:
    1、我们要在手机上显示出百度地图:
    xml:
    android:id="@+id/act_main_mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    在使用SDK各组件之前初始化context信息,传入ApplicationContext 注意该方法要再setContentView方法之前实现
    SDKInitializer.initialize(getApplicationContext());
    2、如何获取我们的位置

定位请求回调接口

private BDLocationListener listener = new MyLocationListener();

       public class MyLocationListener implements BDLocationListener {

        @Override
        public void onReceiveLocation(BDLocation location) {
        //获取定位结果
        StringBuffer sb = new StringBuffer(256);
        sb.append("time : ");
        sb.append(location.getTime());    //获取定位时间
        sb.append("\nerror code : ");
        sb.append(location.getLocType());    //获取类型类型
        sb.append("\nlatitude : ");
        sb.append(location.getLatitude());    //获取纬度信息
        sb.append("\nlontitude : ");
        sb.append(location.getLongitude());    //获取经度信息
        sb.append("\nradius : ");
        sb.append(location.getRadius());    //获取定位精准度
        if (location.getLocType() == BDLocation.TypeGpsLocation) {
            // GPS定位结果
            sb.append("\nspeed : ");
            sb.append(location.getSpeed());    // 单位:公里每小时
            sb.append("\nsatellite : ");
            sb.append(location.getSatelliteNumber());    //获取卫星数
            sb.append("\nheight : ");
            sb.append(location.getAltitude());    //获取海拔高度信息,单位米
            sb.append("\ndirection : ");
            sb.append(location.getDirection());    //获取方向信息,单位度
            sb.append("\naddr : ");
            sb.append(location.getAddrStr());    //获取地址信息
            sb.append("\ndescribe : ");
            sb.append("gps定位成功");
        } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
            // 网络定位结果
            sb.append("\naddr : ");
            sb.append(location.getAddrStr());    //获取地址信息
            sb.append("\noperationers : ");
            sb.append(location.getOperators());    //获取运营商信息
            sb.append("\ndescribe : ");
            sb.append("网络定位成功");
        } else if (location.getLocType() == BDLocation.TypeOffLineLocation) {
            // 离线定位结果
            sb.append("\ndescribe : ");
            sb.append("离线定位成功,离线定位结果也是有效的");
        } else if (location.getLocType() == BDLocation.TypeServerError) {
            sb.append("\ndescribe : ");
            sb.append("服务端网络定位失败,可以反馈IMEI号和大体定位时间到[email protected],会有人追查原因");
        } else if (location.getLocType() == BDLocation.TypeNetWorkException) {
            sb.append("\ndescribe : ");
            sb.append("网络不同导致定位失败,请检查网络是否通畅");
        } else if (location.getLocType() == BDLocation.TypeCriteriaException) {
            sb.append("\ndescribe : ");
            sb.append("无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机");
        }
        sb.append("\nlocationdescribe : ");
        sb.append(location.getLocationDescribe());    //位置语义化信息
        List list = location.getPoiList();    // POI数据
        if (list != null) {
            sb.append("\npoilist size = : ");
            sb.append(list.size());
            for (Poi p : list) {
                sb.append("\npoi= : ");
                sb.append(p.getId() + " " + p.getName() + " " + p.getRank());
            }
        }
        Log.i("BaiduLocationApiDem", sb.toString());

        location.getLatitude();//纬度
        location.getLongitude();//经度

    @Override
    public void onConnectHotSpotMessage(String s, int i) {

    }
  }

我们的位置(经纬度)

location.getLatitude();//纬度
location.getLongitude();//经度

3、如何在屏幕中显示我们当前的位置:

LatLng latLng = new LatLng(纬度, 经度);
MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(latLng, 16f);
baiduMap.animateMapStatus(mapStatusUpdate);

4、滑动地图标注跟着一起动?

不得不说当时我也是懵逼状态,好在本少爷天资纵横。
这其实是我的一种错觉,根据初中物理所学,物体的运动是相互的。我看到的标注随着地图滑动而运动是错误的,其实那个标注从未移动,是我的眼睛欺骗了我。想明白这一点做这个就很简单了。我们在布局中的地图正中心钉死一张图片,然后我们获取在屏幕正中心的经纬度。根据经纬度获取地理位置信息,根据经纬度进行Poi检索。

XML:




        

            

            

                

                    

                


                

            

        

    

5、地图移动监听:

地图对象的操作方法与接口

baiduMap = mapView.getMap();

地图移动监听

baiduMap.setOnMapStatusChangeListener(onMapStatusChangeListener);

地图状态改变相关接口

BaiduMap.OnMapStatusChangeListener onMapStatusChangeListener = new BaiduMap.OnMapStatusChangeListener() {
    /**
     * 手势操作地图,设置地图状态等操作导致地图状态开始改变。
     * @param status 地图状态改变开始时的地图状态
     */
    @Override
    public void onMapStatusChangeStart(MapStatus mapStatus) {

    }
    /**
     * 地图状态变化中
     * @param status 当前地图状态
     */
    @Override
    public void onMapStatusChange(MapStatus mapStatus) {

    }
    /**
     * 地图状态改变结束
     * @param status 地图状态改变结束后的地图状态
     */
    @Override
    public void onMapStatusChangeFinish(MapStatus mapStatus) {
        LatLng latLng = baiduMap.getMapStatus().target;//地图操作中心点在屏幕中的坐标
        if (geocode == null) {
            geocode = GeoCoder.newInstance();
        }
        //根据坐标获取地理位置信息,也就是百度官网所说的反Geo地理编码
        geocode.setOnGetGeoCodeResultListener(onGetGeoCoderResultListener);
        geocode.reverseGeoCode(new ReverseGeoCodeOption().location(latLng));
        retrieval(latLng);//根据经纬度检索周边信息
    }
} ;

6、地理编码,反地理编码

通俗点讲 : 地理编码就是根据地理位置信息获取经纬度(例:广岛--(经度,纬度))
反地理编码就是根据经纬度获取地理位置信息(例:(经度,纬度)--长崎)

地理编码查询接口

GeoCoder geocode = GeoCoder.newInstance();
geocode.setOnGetGeoCodeResultListener(onGetGeoCoderResultListener);
geocode.reverseGeoCode(new ReverseGeoCodeOption().location(latLng));

地理编码、反地理编码结果

OnGetGeoCoderResultListener onGetGeoCoderResultListener = new OnGetGeoCoderResultListener() {
    @Override
    public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {
        if (geoCodeResult == null || geoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {//没有检索到结果
            return;
        }
        Log.e("地理编码结果", geoCodeResult.getAddress().toString());

    }

    @Override
    public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
        if (reverseGeoCodeResult == null || reverseGeoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {//没有找到检索结果
            return;
        }
        Log.e("反 Geo Code 结果", reverseGeoCodeResult.getAddress().toString());
    }
};

7、Poi之周边信息检索

PoiSearch poiSearch = PoiSearch.newInstance();//创建POI检索实例
poiSearch.setOnGetPoiSearchResultListener(poiListener);//设置POI检索监听者
poiSearch.searchNearby(new PoiNearbySearchOption()
            .keyword("小")//检索关键字
            .radius(100)//设置检索的半径范围
            .location(new LatLng(纬度, 经度))//检索位置
            .pageNum(10)//分页编号
            .pageCapacity(10));//发起检索请求

8、github地址:https://github.com/DingMr/Map

你可能感兴趣的:(百度地图)