李代沫,得瑟网,mp4
经度指示南北方向,纵向
纬度指示东西方向,横向
获取经纬度
使用gps权限:
android提供locationmanager和location,可以方便的获得经纬度、海拔等位置。使用locationmanager来获得位置管理类,从而可以获得历史gps信息以及位置变化的监听注册;使用location来获得具体的位置信息。代码如下:
location location = locationm.getlastknownlocation(provider);
//获得上次的记录
gps_loc(location);
locationlistener gps_listener = new locationlistener() {
//监听位置变化,实时获取位置信息
@override
public void onstatuschanged(string provider, int status,
bundle extras) {
// todo auto-generated method stub
}
@override
public void onproviderenabled(string provider) {
// todo auto-generated method stub
}
@override
public void onproviderdisabled(string provider) {
// todo auto-generated method stub
}
@override
public void onlocationchanged(location location) {
// todo auto-generated method stub
//位置发生改变时
gps_loc(location);
}
};
locationm.requestlocationupdates(provider, 1000, 0, gps_listener);
}
// 获得自己位置
private void gps_loc(location location) {
if (location != null) {
self_weidu = location.getlatitude();
self_jindu = location.getlongitude();
} else {
self_weidu = 0;
self_jindu = 0;
}
}
两点经纬度,计算距离
1.lat1 lung1 表示a点经纬度,lat2 lung2 表示b点经纬度;
2.a=lat1 – lat2 为两点纬度之差 b=lung1 -lung2 为两点经度之差;
3.6378.137为地球半径,单位为千米;
计算出来的结果单位为千米。
直接从google maps的脚本里扒了段代码。
maps的代码:计算的结果是米为单位。
两点经纬度,计算方位角
计算方位角pab
其中lat_a, lng_a是a的纬度和经度; lat_b, lng_b是b的纬度和经度。代码如下:
d=math.sin(lat_a)*math.sin(lat_b)+math.cos(lat_a)*math.cos(lat_b)*math.cos(lng_b-lng_a);
d=math.sqrt(1-d*d);
d=math.cos(lat_b)*math.sin(lng_b-lng_a)/d;
d=math.asin(d)*180/math.pi;
// d = math.round(d*10000);
return d;
}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论