求助啊,c#怎么用两点的经纬度计算方位角和两点之间的距离? 10
2个回答
引用2106WXM的回答:
这个跟C#有联系吗
定义一个方法,传入两个参数,分别是两点的经纬度,然后用公式计算就是了
这个跟C#有联系吗
定义一个方法,传入两个参数,分别是两点的经纬度,然后用公式计算就是了
展开全部
首先要把经纬度转换成相应坐标系上的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()是提取坐标的方法。不需要那直接带入相应坐标就行了。
经纬度坐标,是指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()是提取坐标的方法。不需要那直接带入相应坐标就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询