第1个回答 2017-09-29
首先要把经纬度转换成相应坐标系上的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()是提取坐标的方法。不需要那直接带入相应坐标就行了。