在项目开发过程中有时候我们可能需要用到定位功能,但是只是简单定个位并不要求实现我的位置定位地图、周边、检索、路线等其他额外的功能,所以我们引入百度或者高德我的位置定位地图sdk就有些得不偿失了其实如果只需要一个简单定位,Android已经为我们提供了获取经纬度的方法
实現起来也很简单,首先获取LocationManager的对象:
其次选择要使用的位置提供器GPS或网络定位,两种定位方式各有特点GPS定位精度高,但是非常耗电網络定位精度稍低,但耗电量比较小:
最后获取包含当前位置信息(比如经度纬度)的Location对象:
记得不要忘了添加权限而且自 android6.0 起,app不会在咹装时授予权限而是在运行时一个一个向用户询问是否授予权限。到此我们就可以通过上述方法获取当前位置的经纬度信息了。
通过百度我的位置定位地图提供的Web服务API进行反地理编码,将我们的经纬度转换成正常的位置信息
首先我们先登录并创建一个服务端类型应鼡,其中IP白名单如果没有限制直接填写0.0.0.0/0
其次查看百度我的位置定位地图提供的逆地理编码请求网址和返回的json信息,并查看当前服务是否滿足自己的项目要求因为服务配额是有限制的,例如未认证的个人用户日配额(次)6000,分钟并发数(次/分钟)3000
最后的网络请求代码峩就不展示了,有兴趣的可以下载demo进行查看本例中使用的Retrofit2.0进行的网络请求,运行结果如下: