首页 > 其他 > 详细

百度定位的学习笔记

时间:2016-01-25 16:37:55      阅读:921      评论:0      收藏:0      [点我收藏+]

百度定位:

1、首先找到百度地图的api首页http://lbsyun.baidu.com ,创建、登录百度开发者账号,进入api控制平台创建应用。技术分享

2、按照需求下载相应的sdk包、这里选择定位即可

技术分享

3、创建完后在开发工具中导入libs,并build-path取得appkey,以下代码复制至<application>中

    <!-- 百度定位key release-->
  <meta-data
      android:name="com.baidu.lbsapi.API_KEY"
      android:value="61Lv7FxBgk9vPBbrO9AcVDYD" />

    <!-- 百度定位 service-->
    <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote">

4、开始调用百度定位

package com.example.lbsbaidu;
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 android.app.Application;

public class MyApplication extends Application implements BDLocationListener {
private LocationClient mLocationClient;
private IBaiDu ibaidu;
/** 开启定位 */
public LocationClient start(IBaiDu ibaidu) {
mLocationClient.start();
this.ibaidu = ibaidu;
return mLocationClient;
}

@Override
public void onCreate() {
super.onCreate();
//声明LocationClient类
mLocationClient = new LocationClient(getApplicationContext());
//注册监听函数
mLocationClient.registerLocationListener(this);
initLocation();
}

/** 定位的回调 */
@Override
public void onReceiveLocation(BDLocation bDlocation) {
if(bDlocation.getLocType() == BDLocation.TypeGpsLocation || //gps定位成功
bDlocation.getLocType() == BDLocation.TypeNetWorkLocation || //网络定位
bDlocation.getLocType() == BDLocation.TypeOffLineLocation){ //离线定位
ibaidu.onSuccess(bDlocation.getAddress().address);
}{
ibaidu.onErro("定位失败");
}
}

private void initLocation() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy
);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
option.setCoorType("bd0911");//可选,默认gcj02,设置返回的定位结果坐标系
int span=1000;
option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
option.setOpenGps(true);//可选,默认false,设置是否使用gps
option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出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仿真结果,默认需要
mLocationClient.setLocOption(option);
}

/** 定位后两种结果的回调 */
public interface IBaiDu{
/** 定位成功 */
void onSuccess(String str);
/** 定位失败 */
void onErro(String str);
}
}

 

package com.example.lbsbaidu;

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.example.lbsbaidu.MyApplication.IBaiDu;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
//实现IBaiDu接口,当定位方法回调后,通知activity定位的结果;
public class MainActivity extends Activity implements IBaiDu,OnClickListener{
public LocationClient mLocationClient = null;
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn).setOnClickListener(this);
text = (TextView) findViewById(R.id.text);
}

/** 回调两种结果 */
@Override
public void onSuccess(String str) {
text.setText(str);
}
@Override
public void onErro(String str) {
}


@Override
public void onClick(View view) {
//开启定位
client = ((MyApplication)getApplication()).start(this);
}
LocationClient client;
@Override
protected void onDestroy() {
super.onDestroy();
client.stop();
}
}

 

百度定位的学习笔记

原文:http://www.cnblogs.com/aimr/p/5157365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!