已知A,B两点的经纬度,求A点相对于B点的方向;怎么算,坐等
解决方案 »
- android平板,外接鼠标,滚轮事件
- 急!急!急!关于android中控件的重写
- framework/base/下自定义模块编译问题
- 为什么使用Ubuntu下载源码,但是下载后目录里什么也没有?源码下到哪去了?
- Location of the andriod SDK has not been set up in the preferrence
- tty,console,uart之间的关系
- Android程序关闭前需要保存一张图片,第二次启动程序的时候读取这张图片并显示出来,如何去实现?
- Intent intent1 = new Intent(ActivityMain.this , ActivityFrameLayou.classt)
- JAVA中如何向SQL数据保存图片文件
- 请问Android上有什么软件可以录制频幕操作的视频?
- 如果用sqlite作为数据库,当项目做完时能否安装到手机上
- SharedPreference的CheckBoxPreference的不同效果
例如,A正对着B的时候,那方向就不用求了。这个问题关键就是A的朝向问题。总要确定一个方向,A面向那个方向,然后才能确定B相对A的方向。反过来求A相对B的方向也一样
* 计算两点间的正北方向
* @param lon1 点1
* @param lat1
* @param lon2 点2
* @param lat2
* @return
*/
public double getYawByPoints(double lon1,double lat1,double lon2,double lat2)
{
double yaw = 0;
double dlon = lon2-lon1;
double dlat = lat2-lat1;
double dMin = 0.00001;
if(Math.abs(dlon)<dMin)
{
if(dlat>dMin)
yaw = 0;
else if(dlat<dMin)
yaw = 180;
return yaw;
}
if(Math.abs(dlat)<dMin)
{
if(dlon>dMin)
yaw = 90;
else if(dlon<dMin)
yaw = 270;
return yaw;
}
double kk = (dlon)/(dlat);
if(dlon>dMin&&dlat>dMin)
{
yaw = (Math.atan(kk)*180/Math.PI);
}
else if(dlon>dMin&&dlat<dMin)
{
yaw = (Math.atan(kk)*180/Math.PI)+180;
}
else if(dlon<dMin&&dlat<dMin)
{
yaw = (Math.atan(kk)*180/Math.PI)+180;
}
else
{
yaw = (Math.atan(kk)*180/Math.PI)+360;
}
return yaw;
}