通过经度和纬度算出距离
最近在Android上做GPS的东西,获取经纬度、计算距离、方位角,感觉在搞GIS样。当然,玩笑了,玩玩而已,稍微总结一下。
经度指示南北方向,纵向。
纬度指示东西方向,横向.
获取经纬度
使用GPS权限:
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
Android提供LocationManager和Location,可以方便的获得经纬度、海拔等位置。使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位置变化的监听注册;使用Location来获得具体的位置信息。代码如下:
locationm= (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria =newCriteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider =locationm.getBestProvider(criteria,true);
Location location =locationm.getLastKnownLocation(provider);
//获得上次的记录
gps_loc(location);
LocationListener GPS_listener =newLocationListener() {
//监听位置变化,实时获取位置信息
@Override
publicvoidonStatusChanged(String provider,intstatus,
Bundle extras) {
//TODOAuto-generated method stub
}
@Override
publicvoidonProviderEnabled(String provider) {
//TODOAuto-generated method stub
}
@Override
publicvoidonProviderDisabled(String provider) {
//TODOAuto-generated method stub
}
@Override
publicvoidonLocationChanged(Location location) {
//TODOAuto-generated method stub
//位置发生改变时
gps_loc(location);
}
};
locationm.requestLocationUpdates(provider, 1000, 0, GPS_listener);
}
//获得自己位置
privatevoidgps_loc(Location location) {
if(location !=null) {
self_weidu= location.getLatitude();
self_jindu= location.getLongitude();
}else{
self_weidu= 0;
self_jindu= 0;
}
}
更多相关文章
- Android(安卓)Monkey压力测试使用
- 检查Android本地代码的内存泄漏(Detecting memory leak in Androi
- androidのMms模块编辑短彩信
- 个人帐号密码信息管理(PAPIM)软件构想
- Android导出文件位置讨论
- Android系统调试(01)日志分析基础流程
- android--多点触控的实现
- Android中对多媒体操作阶段总结
- Android中BroadCastReceiver使用(整理)