求助啊,c#怎么用两点的经纬度计算方位角和两点之间的距离?
发布网友
发布时间:2022-05-06 16:12
我来回答
共2个回答
热心网友
时间:2023-10-11 10:23
首先要把经纬度转换成相应坐标系上的X,Y坐标。例如北京54坐标系、西安80坐标系等。
经纬度坐标,是指WGS84坐标。要转换成相对准确的平面坐标,需要一定的转换参数,这个是测绘学科的范畴。
转换之后那一切就简单了。
public double Distance(Coord p, int i, int j) //距离 P为坐标数组的实例成员
{
double a = Math.Pow((p.X(j) - p.X(i)), 2) + Math.Pow((p.Y(j) - p.Y(i)), 2);
return Math.Sqrt(a);
}
public double AlphaDu(Coord p, int i, int j) //方位角
{
double Alpha = Math.Atan2(p.Y(j) - p.Y(i), p.X(j) - p.X(i));
double a = Alpha * 180 / Math.PI;
a = a > 0 ? a : a + 360;
//double α = (a - a % 1) + (a % 1 * 60 - (a % 1 * 60) % 1) / 100 + ((a % 1 * 60) % 1 * 60) / 10000;
return a; //度
//return α; //度.分秒
}
//前面有数组类,p()是提取坐标的方法。不需要那直接带入相应坐标就行了。
热心网友
时间:2023-10-11 10:24
这个跟C#有联系吗
定义一个方法,传入两个参数,分别是两点的经纬度,然后用公式计算就是了追问哥哥,我需要公式啊。。。
追答这个你在这问,谁知道啊,,弟弟
你应该直接提问:“怎么用两点的经纬度计算方位角和两点之间的距离? ”
热心网友
时间:2023-10-11 10:23
首先要把经纬度转换成相应坐标系上的X,Y坐标。例如北京54坐标系、西安80坐标系等。
经纬度坐标,是指WGS84坐标。要转换成相对准确的平面坐标,需要一定的转换参数,这个是测绘学科的范畴。
转换之后那一切就简单了。
public double Distance(Coord p, int i, int j) //距离 P为坐标数组的实例成员
{
double a = Math.Pow((p.X(j) - p.X(i)), 2) + Math.Pow((p.Y(j) - p.Y(i)), 2);
return Math.Sqrt(a);
}
public double AlphaDu(Coord p, int i, int j) //方位角
{
double Alpha = Math.Atan2(p.Y(j) - p.Y(i), p.X(j) - p.X(i));
double a = Alpha * 180 / Math.PI;
a = a > 0 ? a : a + 360;
//double α = (a - a % 1) + (a % 1 * 60 - (a % 1 * 60) % 1) / 100 + ((a % 1 * 60) % 1 * 60) / 10000;
return a; //度
//return α; //度.分秒
}
//前面有数组类,p()是提取坐标的方法。不需要那直接带入相应坐标就行了。
热心网友
时间:2023-10-11 10:24
这个跟C#有联系吗
定义一个方法,传入两个参数,分别是两点的经纬度,然后用公式计算就是了追问哥哥,我需要公式啊。。。
追答这个你在这问,谁知道啊,,弟弟
你应该直接提问:“怎么用两点的经纬度计算方位角和两点之间的距离? ”