网上很多获取位置的博文,但是感觉都不是很全面。

最近刚好有一个项目要求获取当地的经纬度和地理位置

几经折腾,终于还是写出来了。文分享一下。

代码如下

先在AndroidManifest中添加如下权限

<!-- 这个权限用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!-- 这个权限用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><!-- 获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!-- 用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!-- 访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET" /><!-- SD卡读取权限,用户写入离线定位数据--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

然后就是去百度sdk官网申请key,申请key的步骤就不写了,网上一大推;

然后在AndroidManifes中配置你的key,如下:

<!--添加百度服务--><serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote"></service><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="**********" ></meta-data>

注意:百度服务和key都添加在activity标签上面,代码中打星号的就是你申请的key。

然后把去官网下载下来的jar包放到如下位置,点击下载也可以下载。

最后就是MainActivity中实现,代码如下

 private void initLocation() {LocationClientOption option = new LocationClientOption();option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);/**可选,设置定位模式,默认高精度LocationMode.Hight_Accuracy:高精度;* LocationMode. Battery_Saving:低功耗;LocationMode. Device_Sensors:仅使用设备;*/option.setCoorType("gcj02gcj02");/**可选,设置返回经纬度坐标类型,默认gcj02gcj02:国测局坐标;bd09ll:百度经纬度坐标;bd09:百度墨卡托坐标;海外地区定位,无需设置坐标类型,统一返回wgs84类型坐标*/option.setScanSpan(3000);/**可选,设置发起定位请求的间隔,int类型,单位ms如果设置为0,则代表单次定位,即仅定位一次,默认为0如果设置非0,需设置1000ms以上才有效*/option.setOpenGps(true);/**可选,设置是否使用gps,默认false使用高精度和仅用设备两种定位模式的,参数必须设置为true*/option.setLocationNotify(true);
/**可选,设置是否当GPS有效时按照1S/1次频率输出GPS结果,默认false*/option.setIgnoreKillProcess(false);/**定位SDK内部是一个service,并放到了独立进程。设置是否在stop的时候杀死这个进程,默认(建议)不杀死,即setIgnoreKillProcess(true)*/option.SetIgnoreCacheException(false);/**可选,设置是否收集Crash信息,默认收集,即参数为false*/option.setIsNeedAltitude(true);/**设置海拔高度*/option.setWifiCacheTimeOut(5 * 60 * 1000);/**可选,7.2版本新增能力如果设置了该接口,首次启动定位时,会先判断当前WiFi是否超出有效期,若超出有效期,会先重新扫描WiFi,然后定位*/option.setEnableSimulateGps(false);/**可选,设置是否需要过滤GPS仿真结果,默认需要,即参数为false*/option.setIsNeedAddress(true);/**可选,设置是否需要地址信息,默认不需要*/mLocationClient.setLocOption(option);/**mLocationClient为第二步初始化过的LocationClient对象需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用*/}public class MyLocationListener extends BDAbstractLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果//以下只列举部分获取经纬度相关(常用)的结果信息//更多结果信息获取说明,请参照类参考中BDLocation类中的说明double latitude = location.getLatitude();    //获取纬度信息double longitude = location.getLongitude();    //获取经度信息float radius = location.getRadius();    //获取定位精度,默认值为0.0fjd.setText("" + longitude);wd.setText("" + latitude);height.setText("" + location.getAltitude() + "m");city.setText("" + location.getCity() + " " + location.getDistrict());cityName = location.getCity();//获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准String coorType = location.getCoorType();int errorCode = location.getLocType();//获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明}}

定义变量

private TextView jd, wd, height, city, tq;private Button loc_btn,tq_btn;private String cityName,weather1;public LocationClient mLocationClient = null;private MyLocationListener myListener = new MyLocationListener();

onCreate中调用

 mLocationClient = new LocationClient(getApplicationContext());//声明LocationClient类mLocationClient.registerLocationListener(myListener); //注册监听函数initLocation();mLocationClient.start();//调用LocationClient的start()方法,便可发起定位请求

以上便可以获取当地的位置和经纬度了

android studio百度地图SDK获取当前位置和经纬度和海拔相关推荐

  1. Android百度地图海拔,android studio百度地图SDK获取当前位置和经纬度和海拔

    网上很多获取位置的博文,但是感觉都不是很全面. 最近刚好有一个项目要求获取当地的经纬度和地理位置 几经折腾,终于还是写出来了.文分享一下. 代码如下 先在AndroidManifest中添加如下权限 ...

  2. Android studio 百度地图SDK之地图定位与运动轨迹绘制

    百度地图定位与运动轨迹 Android开发的前期准备 地图图层显示与定位 运动轨迹的简单绘制 Android开发的前期准备 Android配置在百度地图SDK官网上有详细的说明.具体可以参考官网的教程 ...

  3. Android使用百度地图api获取定位信息(经纬度)

    文章目录 注册 申请密钥 配置 使用 遇到问题 注册 登录百度地图开放平台 注册百度地图开发者,填写相关信息 提交成功后收到邮件 点击链接弹出如下提示就算激活成功了 申请密钥 点击申请密钥或者创建应用 ...

  4. Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(3) 路线规划步行骑行驾车路线规划

    2020最新超详细的Android 百度地图开发讲解(3) 路线规划步行骑行驾车路线规划 开发前配置,显示基本地图,实时定位等查看之前代码,此博客紧接上一博客:https://blog.csdn.ne ...

  5. Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(6) POI检索, 根据地址输入提示检索 Sug

    POI检索, 根据地址输入提示检索 Sug 参考百度地图官方文档:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/search/sug ...

  6. 百度定位实时获取位置android,通过百度定位sdk获取实时位置

    之前有一片关于基站定位的文章,当时的测试环境是小米+移动,比较顺利. 但在实际运用中就出现问题了-联通和电信的号完全没办法定位! 最好的解决方法就是用第三方sdk来定位了. 百度的定位sdk还是很不错 ...

  7. android的百度地图sdk获取ip,基于百度地图API的ip地址查询

    说明:使用ip地址查询太麻烦,偶然搜索发现有人已经写过基于百度API的ip地址查询,这个是前人的结晶,我只是修改了一些,勿喷. 用的python2.7,编码问题真是坑. 百度mapAPI私钥申请:ht ...

  8. android studio百度地图教程,Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(4) 路线规划之起始点地址输入实现规划...

    实现起始点输入的路线规划 要实现输入起始点的路线规划,需要两个输入框,可以将两个输入框设置在和地图同一个Activity中,也可以新建一个Activity,来实现地址的输入,然后通过页面之间的跳转来传 ...

  9. H5使用百度地图SDK获取用户当前位置并且标记显示在地图

    代码实现功能: H5使用百度地图SDK获取用户当前位置并且标记显示在地图,点击该标记弹出一层自定义的HTML. 效果图: 代码: <!DOCTYPE html> <html>& ...

最新文章

  1. bottle框架学习(八)之Mysql数据库的操作
  2. 每日一皮:晕,程序重新请求一下,结果还不一样了!
  3. linux时mysql报1290_rhel6 mysql skip-grant-tables 添加用户报错 ERROR 1290
  4. javax.swing super()方法
  5. 华为云创建免费服务器的一次失败尝试
  6. 我的第一篇cnds文章
  7. JCreator使用技巧
  8. 4K标准---电视显示标准(ITU-R BT.2020)
  9. 【课程总结】软件工程经济学简答题总结
  10. 信息化为五万教学点带来“优质教师”
  11. 如何重新编辑排版错乱的PDF文件
  12. 网络邻居无法查找计算机,局域网中无法找到网上邻居的原因
  13. 盛大进军语音识别领域:将开源哼唱搜索技术
  14. 输入文字后不会自动变长的下划线如何制作
  15. 2021年,从事数据分析行业前景如何?还能转行数据分析师吗?(上)
  16. linux双系统如何选择顺序,Ubuntu和Windows双系统选择开机顺序
  17. 深度学习 - 38.Gensim Word2Vec 实践
  18. Makefile中的死循环问题--学习李云《驾驭Makefile》中的疑惑解决
  19. python爬虫——爬取拉勾上的职位信息
  20. 数值越界mysql_Mysql数据读取越界问题

热门文章

  1. 苹果电脑如何把Windows系统安装到U盘?
  2. 苹果正式推出新Apple TV应用程序 支持三星新款智能电视
  3. postgis 栅格数据_PostgreSQL raster(栅格数据) st_value 优化举例
  4. java doc to pdf_Java实现doc或xls转PDF
  5. win10下搭建zipline python3.5量化回测平台环境
  6. 天津大学计算机科学专业排名,天津大学各专业排名
  7. B/S架构的工作原理
  8. 058 业务逻辑漏洞
  9. java培训班学习该怎么做才能快速入门呢
  10. 大年初七,小灰在西双版纳看人妖