Skip to content

Instantly share code, notes, and snippets.

@jp1017
Created May 23, 2016 06:35
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jp1017/dc87d742ae5d1edf9fad0b43223f74bb to your computer and use it in GitHub Desktop.
Save jp1017/dc87d742ae5d1edf9fad0b43223f74bb to your computer and use it in GitHub Desktop.
利用 LocationManager 实时获取 GPS 定位信息,wgs84格式
/**
* 获取原生gps信息,代码放 MainActivity 里就可以
*/
public void getGPSInfo() {
LocationManager mManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
return;
}
Location mLocation = mManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
updateGPSInfo(mLocation);
mManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 8, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
updateGPSInfo(mLocation);//位置变化时,更新位置信息
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
// 当GPS LocationProvider可用时,更新位置
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
return;
}
updateGPSInfo(mManager.getLastKnownLocation(provider));
}
@Override
public void onProviderDisabled(String provider) {
}
});
}
/**
* 更新经纬度信息
* @param location
*/
public void updateGPSInfo(Location location) {
if (location != null) {
mLat = location.getLatitude();
mLng = location.getLongitude();
}
}
@jp1017
Copy link
Author

jp1017 commented May 23, 2016

安卓系统常用的 GPS 坐标有下面几种:

名称 别名 标准 获取方式 应用场合
wgs84 地球坐标 国际标准 从 GPS 设备中获取的坐标数据 国际地图提供商,谷歌国际地图
gcj02 火星坐标,国测局坐标 中国标准 从国行移动设备中定位获取的坐标数据 高德地图,谷歌地图,腾讯地图,阿里云地图
bd09 百度坐标 百度标准 百度在火星坐标上二次加密后的坐标数据 百度地图

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment