百度地图在Activity中以最简单的配置获取定位坐标字符串和经纬度

首先申请百度地图的key,同时下载库文件和jar包截图如下:

清单文件添加权限如下:

 <!-- gps -->

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- wifi -->

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

    <!-- 网络的权限 -->

    <uses-permission android:name="android.permission.INTERNET" />

    <!-- 离线包 -->

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- 获取手机信息 -->

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

在清单文件中添加百度的service:

<service

            android:name="com.baidu.location.f"

            android:enabled="true"

            android:process=":remote" >

        </service>

 

 

在Activity中定位:

1、在onCreate方法中创建BMapManager对象

   manager = new BMapManager(getApplicationContext());

2、初始化BMapManager进行授权验证

   manager.init(ConstantValue.KEY, new MKGeneralListener()

并实现两个方法 @Override

public void onGetPermissionState(int iError) {

// 授权验证

if (iError == MKEvent.ERROR_PERMISSION_DENIED) {

Toast.makeText(getApplicationContext(), "验证失败", 0).show();

}

}

@Override

public void onGetNetworkState(int iError) {

// 网络状态

if (iError == MKEvent.ERROR_NETWORK_CONNECT) {

Toast.makeText(getApplicationContext(), "无网络",   0).show();

}

}

3、在onCreate方法是中实现定位

 

myListener = new MyListener();

mLocationClient = newLocationClient(getApplicationContext());

mLocationClient.registerLocationListener(myListener);

LocationClientOption option = new LocationClientOption();

option.setOpenGps(true);

option.setAddrType("all");返回的定位结果包含地址信息

option.setCoorType("bd09ll");返回定位结果是百度经纬度,默认值gcj02

option.setScanSpan(5000);设置发起定位请求的间隔时间为5000ms

option.disableCache(true);禁止启用缓存定位

mLocationClient.setLocOption(option);

 

实现监听接口

class MyListener implements BDLocationListener {

//接受定位数据

@Override

public void onReceiveLocation(BDLocation result) {

if (result != null) {

//创建经纬度坐标对象

LocationData data = new LocationData();

//获取到经纬度坐标

data.latitude = result.getLatitude();

data.longitude = result.getLongitude();

//获取定位的具体地址字符串

String addrStr = result.getAddrStr();

Toast.makeText(getApplicationContext(),"地址:"+addrStr, Toast.LENGTH_LONG).show();

} else {

Toast.makeText(getApplicationContext(), "定位不成功", 0).show();

}

}

 

@Override

public void onReceivePoi(BDLocation arg0) {

// TODO Auto-generated method stub

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值