经纬度与(公里)km怎么换算??

navy2001 2004-07-30 11:42:38
我现在要求一个点B(lon2,lat2)的坐标,已知A(111.121211,20.22322),B相对于A的距离是2.555km,B相对于A的角度已知.跟距公式应该是可以算出来的,但用公里直接来算是不对的,要转换为经纬度的单位,但不知怎么转换谁能给个好主意!!
...全文
4312 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
navy2001 2004-08-03
  • 打赏
  • 举报
回复
非常感激!!但我要的不是计算距离,我的条件是已知距离和一个点的坐标,求另一个点的坐标啊?
经纬度都是GPS吞出的数据,坐标系就是mapinfo/mapx默认的坐标系,地图比例尺已知,怎么求??

Rex_love_Burger 2004-08-02
  • 打赏
  • 举报
回复
关注
alaclp 2004-08-02
  • 打赏
  • 举报
回复
具体距离与点的位置,地图比例尺,坐标系等有关
好像不能简单的一概而论吧
或者误差可能比较大吧
azhong 2004-07-30
  • 打赏
  • 举报
回复
#define PI 3.14159265358979323 //3.14159265353846
//当计算两点间距离时,经纬度差小于下面的门限值用地球半径,大于下面门限时用大圆算
#define TWO_P_DIS_LIMIT 0.1
double RadFactor = PI/180; //弧度与度的比例因子
double RevRadFactor = 180/PI; //度与弧度的比例因子
#define eR 6378245

double 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;
}


也是人家给我的!

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧