百度地图Baidu LBS 的使用


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;
	@Override
	public 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 {

		@Override
		public void onReceiveLocation(BDLocation location) {
			// Receive Location
			mLocationClient.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值