Android 获取经纬度处理
处理一:
接入百度,高德,腾讯地图提供的获取经纬度的sdk;
优点:接入流程相对简单,不用处理网络和GPS定位的切换和获取以及各个经纬度(gcj02,bd09,wgs84)转换问题,技术相对成熟。
缺点:需要引入sdk包增加app的包的大小,存在一定的机型适配问题,
处理二:
使用Android提供的API,自己处理逻辑:
优点:增加的app大小可以接受,内部逻辑可预期,
缺点:需要自己处理网络和GPS定位的切换和获取以及各个经纬度(gcj02,bd09,wgs84)转换问题。
下面是实现自己实现API获取经纬度的代码:
1. 获取请求经纬度的权限,这里就不做详细介绍了,需要请求的权限如下
<!-- 获取位置信息需要的权限 -->
<!-- Allows an app to access approximate location. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- Allows an app to access precise location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
2. 获取经纬度
/*** 获取位置首先网络 ,如果网络没有站点列表,再次获取GPS获取位置*/int mLatitude;int mLongitude;LocationManager mLocationManager;private String mBestProvider;private void getLocation() {mLatitude = 0;mLongitude = 0;//这里可以使用Application的上下文mLocationManager = (LocationManager)APP.getAppContext().getSystemService(Context.LOCATION_SERVICE);//如果是同时有GPS和网络定位的权限,我这里的需求精度不是很高 先使用了网络location = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);if (location == null) {//试图请求GPSlocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);// 到了这里说明,本地没有存储位置,需要重新获取一下if (location == null) { requestLocation();return;}}// 到这里说明当前已经获取到经纬度了,直接处理后续的转换,应用了getAddress(location);}
3.重新请求经纬度
private void requestLocation() {// 这里只获取一次的的方法// 需要更新就要使用这个方法LocationManager.requestLocationUpdates()mLocationManager.requestSingleUpdate(LocationManager.NETWORK_PROVIDER, new LocationListener() {@Overridepublic void onLocationChanged(Location location) {// 用完将监听移除mLocationManager.removeUpdates(this);// 到这里说明当前已经获取到经纬度了,直接处理后续的转换,应用了getAddress(location);}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {}}, null);}
4. 当前写的是获取过程,请求权限和坐标转换没有写,有什么错误请留言,谢谢。
Android 获取经纬度处理相关推荐
- android获取经纬度代码
android 4.4上如何获取经纬度信息 由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN.大家可 ...
- android 获取经纬度(百度地图)
今天做原生获取经纬度,本来以为很容易,毕竟之前也做过,我使用的是 LocationManager 和 Location 来获取,但是,最终我怎么也获取不到经纬度,debug才发现最终的 Locatio ...
- android 经纬度方向,Android获取经纬度、计算距离、方位角
最近在Android上作GPS的东西,获取经纬度.计算距离.方位角,感受在搞GIS样.固然,玩笑了,玩玩而已,稍微总结一下.html 经度指示南北方向,纵向.android 纬度指示东西方向,横向.g ...
- Android 获取经纬度。2018年写
本博客内容 获取当前经纬度信息,显示到textView里 具体代码 1. 添加权限 AndroidManifest.xml <uses-permission android:name=" ...
- Android 获取经纬度,地理位置,省市区
申请百度key:http://lbsyun.baidu.com/ 1.jar包下载地址:https://pan.baidu.com/s/1J-boj0ct9oJ8YjXMR8X4KA 下载并复制到li ...
- android 获取经纬度 有负值吗,获取纬度和经度的负值
我想在我的应用程序中得到经度和纬度的值,我已经做到了,但问题是我用值得到了负号.虽然值是正确的,但不知道为什么用值得到负号. java类代码: package com.vshine.neuron.te ...
- 安卓(android)使用GPS,获取经纬度
android获取经纬度,有这个两个类需要用: 1.LocationManager位置管理器 2.Location位置类 第一步:获取LocationManager实例 locationManager ...
- Android 获取地理位置信息 封装好了 直接用
前言:花了一个早上研究了以下android获取经纬度,然后网上的参考资料都是杂七杂八,基本上都是过去几年的,现在我用 android6.0参照别人的结果发生好多错误,我的内心几乎是崩溃的.后来,不断百 ...
- android地图方位角_Android获取经纬度、计算距离、方位角
最近在Android上做GPS的东西,获取经纬度.计算距离.方位角,感觉在搞GIS样.当然,玩笑了,玩玩而已,稍微总结一下. 经度指示南北方向,纵向. 纬度指示东西方向,横向. 获取经纬度 使用GPS ...
- Android系统定位获取经纬度
Android系统定位获取经纬度 直接上代码 public class LocaltionUtil {private double latitude = 0.0;private double long ...
最新文章
- 微信小程序转发 分享 打电话功能,完整代码附效果图
- centos 7 中安装 docker和创建 tomcat容器并部署web应用
- c php socket,C与php socket通讯
- CSU 1337 搞笑版费马大定理(2013湖南省程序设计竞赛J题)
- 上周热点回顾(7.10-7.16)
- 大型前端项目的断点调试共享化和复用化实践
- Git for Windows之推送本地版本库到远程仓库
- 道客巴巴vip账号共享2020_腾讯视频VIP怎么两个手机通用?
- 【渝粤教育】广东开放大学 性考 形成性考核 (33)
- 多表操作查询 一对一
- Golang——单元测试testing
- 计算机完成逻辑运算的原理,计算机组成原理2.5.1逻辑运算.ppt
- 将 EndNote 文献信息导出成 BibTeX 格式(可根据label排序)以及出现三个问号
- 从入门到入土(三)RocketMQ 怎么保证的消息不丢失?
- Linux内核深入理解定时器和时间管理(2):clocksource 框架
- [2018.07.24 T1] 真板题
- JAVA关于MD5加盐加密算法
- .net 事务嵌套存储过程事务的处理方法
- Tableau中国五城市六年PM2.5数据挖掘
- Xcode真机调试中There was an internal API error错误解决方法