已知两个经纬度点,求两个点的角度.

时间:2021-11-02 00:16:57
目前项目上有一个需求.需要从两个点和到线路的走向. 这个主要应用在地图和GIS方面

在网上搜索 了一大把也没有正确的.

已知两个经纬度点,求两个点的角度.

 

 

结果图2

已知两个经纬度点,求两个点的角度.

 

代码如下:

 public double GetAngle(MapPoint pntFirst, MapPoint pntNext)
{
double dRotateAngle = Math.Atan2(Math.Abs(pntFirst.X - pntNext.X), Math.Abs(pntFirst.Y - pntNext.Y));
if (pntNext.X >= pntFirst.X)
{

if (pntNext.Y >= pntFirst.Y)
{
}
else
{
dRotateAngle = Math.PI - dRotateAngle;
}
}
else {

if (pntNext.Y >= pntFirst.Y)
{
dRotateAngle = 2 * Math.PI - dRotateAngle;
}
else {
dRotateAngle = Math.PI + dRotateAngle;
}
}
dRotateAngle = dRotateAngle * 180 / Math.PI;
return dRotateAngle;
}