<uses-permission android:name="android。permission。ACCESS_GPS" />
(4)编写定位程序
这一步是定位的重点,百度地图可以使用GPS和网络定位(WIFI和基站)进行定位,主要会用到LocationClient、BDLocationListener、BDNotifyListener、LocationClientOption等类。
1、初始化LocationClient类
LocationClient类是定位SDK的核心类,必须在主线程中声明。
2、设置定位参数
LocationClientOption locOption = new LocationClientOption();
locOption。setLocationMode(LocationMode。Hight_Accuracy);// 设置定位模式
locOption。setOpenGps(true);//开启GPS
locOption。setCoorType("bd09ll");// 设置定位坐标类型
locOption。setScanSpan(1000);// 设置发起定位请求的间隔时间,ms
locOption。setIsNeedAddress(true);// 返回的定位结果包含地址信息
locationClient。setLocOption(locOption);
坐标类型分为三种:国测局经纬度坐标系(gcj02),百度墨卡托坐标系(bd09),百度经纬度坐标系(bd09ll)。本设计采用百度经纬度坐标系(bd09ll)。
3、添加位置提醒监听函数论文网
notifyListener = new MyNotifyListener();
notifyListener。SetNotifyLocation(longitude, latitude, 3000, "bd09ll");//精度,维度,范围,坐标类型
locationClient。registerNotify(notifyListener);
4、开启定位
调用LocationClient的start()方法用来启动定位SDK。
this。mLocClient = new LocationClient(this);
locData = new LocationData();
this。mLocClient。registerLocationListener(this。myListener);
this。mLocClient。setLocOption(option);
this。mLocClient。start();
4。4 POI检索
POI,即Point of Interest,翻译过来就是“兴趣点”。我们在使用地图的时候,搜索周边的超市,饭店,或者公交站点的时候,输入关键字,然后地图展示给我们很多个点,这些点就是我需要的信息。这就是所谓的兴趣点,也就是一个普通的查询。
百度地图API提供了一个POI检索接口类:PoiSearch。该类的接口有两个回调函数,一个用于接收返回的poi查询结果,一个用于接收返回的详情查询结果。而结果分别封装在PoiResult和PoiDetailResult这两个类中了。
// 实例化PoiSearch对象
poiSearch = PoiSearch。newInstance();
// 设置检索监听器
poiSearch。setOnGetPoiSearchResultListener(poiSearchListener);
/**
* POI检索监听器
*/
OnGetPoiSearchResultListener poiSearchListener = new OnGetPoiSearchResultListener() {
@Override
public void onGetPoiResult(PoiResult poiResult) {
if (poiResult == null
|| poiResult。error == SearchResult。ERRORNO。RESULT_NOT_FOUND) {// 没有找到检索结果
Toast。makeText(PoiSearchActivity。this, "未找到结果",
Toast。LENGTH_LONG)。show();
return;
}