百度地图Baidu LBS 的使用

来源:互联网 发布:icq聊天软件下载 编辑:程序博客网 时间:2024/06/06 05:38


1、下载百度定位jar包;

2、申请密钥;

3、集成项目;

4、实现定位。



1、从 http://developer.baidu.com/map/index.php?title=android-locsdk/geosdk-android-download

下载需要的jar包,以及实例代码 BaiduLBS_AndroidSDK_Sample


2、申请密钥:

项目keystore文件,获取sha1内容:

keytool -list -v -keystore e:\dpm.keystore



详情,见http://developer.baidu.com/map/index.php?title=androidsdk/guide/key


3、集成项目;


参考demo,将manifest中文件,jar包,集成到项目中,配置好密钥。


4、实现定位:


在application的oncreate初始化百度定位的相关参数:


public static Context appContext;//定位public static LocationClient mLocationClient;//定位监听public MyLocationListener mMyLocationListener;public static Activity currentActivity;public static boolean isActived=false;public static int point=0;@Overridepublic void onCreate() {super.onCreate();appContext = getApplicationContext();SDKInitializer.initialize(this);initLocation();mMyLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(mMyLocationListener);} private void initLocation(){        LocationClientOption option = new LocationClientOption();        option.setLocationMode(LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备        option.setCoorType("bd09ll");//百度标准坐标,默认gcj02,设置返回的定位结果坐标系,        option.setScanSpan(5000);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的        option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要        option.setOpenGps(true);//可选,默认false,设置是否使用gps        option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果        option.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死        option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要        option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”        option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到        mLocationClient.setLocOption(option);    }/** *  * TODO(自定义监听器) * <p style="display:none">modifyRecord</p> * <p style="display:none">version:V1.0,author:sjyuan,date:Sep 23, 2014 11:59:59 AM,content:TODO </p> * @author sjyuan * @date Sep 23, 2014 11:59:59 AM * @since * @version *  *  */public class MyLocationListener implements BDLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {// Receive LocationmLocationClient.stop();if (location == null)return;//本地保存位置信息AppConfig config = AppConfig.sharedInstance();config.Latitude = location.getLatitude();config.Longitude = location.getLongitude();config.Address = location.getAddrStr();config.saveToPreference();try {
<span style="white-space:pre"></span>if(location.getLatitude()==4.9E-324 || location.getLongitude()==4.9E-324){<span style="white-space:pre"></span>//定位失败<span style="white-space:pre"></span>}else{
<span style="white-space:pre"></span>//定位成功
<pre name="code" class="java">//本地逻辑实现;   可以在application中,设置handler变量,在使用的地方设置传入handler,进行定位,在此处定位成功后,发送消息,在使用的地方进行处理,
使用经纬度,再将handler置为null,或者你发广播也可以;也可以在此application中,存一些全局变量来控制逻辑部分。

<span style="white-space:pre"></span>}
} catch (Exception e) {}}}

使用部分,获取到Application变量,比如上文类为App,则
(App)getApplicationContext().<span style="font-family: Arial, Helvetica, sans-serif;">mLocationClient.start();</span>
<span style="font-family: Arial, Helvetica, sans-serif;">之后处理定位成功逻辑即可。</span>


0 0
原创粉丝点击