经纬度与(公里)km怎么换算?? 我现在要求一个点B(lon2,lat2)的坐标,已知A(111.121211,20.22322),B相对于A的距离是2.555km,B相对于A的角度已知.跟距公式应该是可以算出来的,但用公里直接来算是不对的,要转换为经纬度的单位,但不知怎么转换谁能给个好主意!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #define PI 3.14159265358979323 //3.14159265353846//当计算两点间距离时,经纬度差小于下面的门限值用地球半径,大于下面门限时用大圆算#define TWO_P_DIS_LIMIT 0.1 double RadFactor = PI/180; //弧度与度的比例因子double RevRadFactor = 180/PI; //度与弧度的比例因子#define eR 6378245double TwoPointDistance(double BgnLongi, double BgnLati, double EndLongi, double EndLati, int Height);/*参数:BgnLongi:起始点经度BgnLati :起始点纬度EndLongi:终点经度EndLati :终点纬度Height :高程返回值:两点间距离*/double TwoPointDistance(double BgnLongi, double BgnLati, double EndLongi, double EndLati, int Height){ double distance; double a0,b0,C0; double t2,t1 = 0,BiasE,BiasN; BiasE = fabs(BgnLongi-EndLongi); BiasN = fabs(BgnLati-EndLati); //当经纬度都小于门限值时,采用两点间直线距离 if((BiasE<TWO_P_DIS_LIMIT)&&(BiasN<TWO_P_DIS_LIMIT)) { t2=sqrt(BiasN*BiasN+BiasE*BiasE)*RadFactor; distance=t2*(eR+Height); } else //当经纬度都大于门限值时,采用大圆距离 { a0=(90-EndLati)*RadFactor; b0=(90-BgnLati)*RadFactor; C0=fabs(BgnLongi-EndLongi)*RadFactor; t1 = cos(a0)*cos(b0)+sin(a0)*sin(b0)*cos(C0); t2 = acos(t1); distance=(eR+Height)*t2; } return distance;}也是人家给我的! 非常感激!!但我要的不是计算距离,我的条件是已知距离和一个点的坐标,求另一个点的坐标啊?经纬度都是GPS吞出的数据,坐标系就是mapinfo/mapx默认的坐标系,地图比例尺已知,怎么求?? 大文件读取分块映射要使用循环吗? IdFTPServer是如何设定主目录的 如何在delphi7下动态设置IP,网关和dns 一个初学者的疑问 DBGRID中显示四个字段只对应数据库中的一个字段 如何实现?(着急ing)! 郁闷,女朋友的手机今天掉了,散分 请问如何在Winodws中读出CPU温度? 如何在动态生成的pagecontrol页面响应按钮信息 尚未解决的SQL问题 昨天去面试,遇到一个很怪的题目!帮我看看! 链表问题 求一个设计思路?谢谢了!
//当计算两点间距离时,经纬度差小于下面的门限值用地球半径,大于下面门限时用大圆算
#define TWO_P_DIS_LIMIT 0.1
double RadFactor = PI/180; //弧度与度的比例因子
double RevRadFactor = 180/PI; //度与弧度的比例因子
#define eR 6378245double TwoPointDistance(double BgnLongi, double BgnLati, double EndLongi, double EndLati, int Height);/*
参数:
BgnLongi:起始点经度
BgnLati :起始点纬度
EndLongi:终点经度
EndLati :终点纬度
Height :高程
返回值:两点间距离
*/
double TwoPointDistance(double BgnLongi, double BgnLati, double EndLongi, double EndLati, int Height)
{
double distance;
double a0,b0,C0;
double t2,t1 = 0,BiasE,BiasN;
BiasE = fabs(BgnLongi-EndLongi);
BiasN = fabs(BgnLati-EndLati); //当经纬度都小于门限值时,采用两点间直线距离
if((BiasE<TWO_P_DIS_LIMIT)&&(BiasN<TWO_P_DIS_LIMIT))
{
t2=sqrt(BiasN*BiasN+BiasE*BiasE)*RadFactor;
distance=t2*(eR+Height);
}
else //当经纬度都大于门限值时,采用大圆距离
{
a0=(90-EndLati)*RadFactor;
b0=(90-BgnLati)*RadFactor;
C0=fabs(BgnLongi-EndLongi)*RadFactor;
t1 = cos(a0)*cos(b0)+sin(a0)*sin(b0)*cos(C0);
t2 = acos(t1);
distance=(eR+Height)*t2;
}
return distance;
}
也是人家给我的!
经纬度都是GPS吞出的数据,坐标系就是mapinfo/mapx默认的坐标系,地图比例尺已知,怎么求??