百度定位demo(Android)

     今天用到了需要定位城市,写了一个百度定位的demo,IT名人刘未鹏在他的著作《按时间》里提到“为什么你从现在开始就应该写博客”,读后深有感受,从现在开始就慢慢开始学着写博客吧,虽然这个不难,我是菜鸟嘛,书写是为了更好的思考,同时这也是一个笔记,嗯!

百度地图Android定位SDK是为Android移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用百度定位SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能,下面是步骤(后附源码):

1.申请密钥--申请地址(ak)

具体申请格式参照此链接

2.设置AndroidManifest.xml
权限相应就是下面这些啦

    <!-- 这个权限用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <!-- 这个权限用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

    <!-- 用于读取手机当前的状态 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- 访问网络,网络定位需要上网 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

    <!-- 允许应用读取低级别的系统日志文件 -->
    <uses-permission android:name="android.permission.READ_LOGS" />
在application标签中声明service组件和meta-data(就是你申请的密钥~,放在value里面)

<service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" />
<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="3yoD80PlKwMoP9yHHvmhS77k" />

这样, AndroidManifest.xml 就配置好啦,接下来就是导入jar包;

3.下载SDK--链接在这

下载定位功能库文件,把它拷在目录libs下,,记得armeabi这个也要放进去

4.关键代码

初始化 一个LocationClient对象,传入的context用Application的最好;然后就是实现LocationListener接口

<span style="font-size:14px;">mLocationClient = new LocationClient(this.getApplicationContext());
mLocationClient.registerLocationListener(new MyLocationListener());</span>
然后就是就是设置一些参数
<span style="font-size:14px;">LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);// 设置定位模式
// option.setCoorType(tempcoor);//返回的定位结果是百度经纬度,默认值gcj02
option.setScanSpan(2000);// 设置发起定位请求的间隔时间为2000ms
option.setIsNeedAddress(true);
mLocationClient.setLocOption(option);</span>
最后就可以获得你想要的信息啦

<span style="font-size:14px;">public class MyLocationListener implements BDLocationListener {

		@Override
		public void onReceiveLocation(BDLocation location) {
			// Receive 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("\nLongitude : ");
			sb.append(location.getLongitude());
			// 获取定位精度半径,单位是米
			sb.append("\nradius : ");
			sb.append(location.getRadius());
			sb.append("\n--------\n");
			sb.append(location.getCity() + "--" + location.getCityCode());
			if (location.getLocType() == BDLocation.TypeGpsLocation) {
				sb.append("\nspeed : ");
				sb.append(location.getSpeed());
				sb.append("\nsatellite : ");
				sb.append(location.getSatelliteNumber());
				sb.append("\ndirection : ");
				sb.append("\naddr : ");
				// 获取反地理编码
				sb.append(location.getAddrStr());
				// 获得手机方向,范围【0-360】,手机上部正朝向北的方向为0°方向
				sb.append(location.getDirection());
			} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
				sb.append("\naddr : ");
				sb.append(location.getAddrStr());
				// 运营商信息
				sb.append("\noperationers : ");
				sb.append(location.getOperators());
			}
			LocationResult.setText(sb.toString());
		}

	}</span>

第一次写博客,写的不好,多多包涵,有什么疑问, 看这里,还有什么Android开发论坛啊,我是菜鸟,大牛们,你们在哪...

源码http://pan.baidu.com/s/1gdnEflh










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值