C# 基于2个横向长点的方向

C# 基于2个横向长点的方向,c#,google-maps,latitude-longitude,computational-geometry,google-earth,C#,Google Maps,Latitude Longitude,Computational Geometry,Google Earth,我正在寻找一个功能,将允许我发送2拉特,长。1 Lat,long是我的基数,第二个是我想要确定的是N,S,E还是West。或者我必须去西北,北,东北,东,东,东,东南,南,西南,西,西,西?不管怎样,有没有人在C#中有类似的东西?首先,你可以计算大圆轴承 θ=atan2(sin(Δλ).cos(φ2),cos(φ1).sin(φ2)− sin(φ1).cos(φ2).cos(Δλ)) JavaScript(易于转换为C#): 然后将结果分割为所需的基本方向,例如,如果方位在-45(315度)到

我正在寻找一个功能,将允许我发送2拉特,长。1 Lat,long是我的基数,第二个是我想要确定的是N,S,E还是West。或者我必须去西北,北,东北,东,东,东,东南,南,西南,西,西,西?不管怎样,有没有人在C#中有类似的东西?

首先,你可以计算大圆轴承

θ=atan2(sin(Δλ).cos(φ2),cos(φ1).sin(φ2)− sin(φ1).cos(φ2).cos(Δλ))

JavaScript(易于转换为C#):

然后将结果分割为所需的基本方向,例如,如果方位在-45(315度)到45度之间,则为北,依此类推

public string Cardinal(double degrees)
{
    if (degrees > 315.0 || degrees < 45.0)
    {
        return "N";
    }
    else if (degrees >= 45.0 && degrees < 90)
    {
        return "E";
    }
    // Etc for the whole 360 degrees.  Segment finer if you want NW, WNW, etc.
}
公共字符串基数(双度)
{
如果(度>315.0 | |度<45.0)
{
返回“N”;
}
否则,如果(度>=45.0&&度<90)
{
返回“E”;
}
//整个360度的等。如果你想要NW、WNW等,分段更精细。
}

首先,您可以计算大圆轴承

θ=atan2(sin(Δλ).cos(φ2),cos(φ1).sin(φ2)− sin(φ1).cos(φ2).cos(Δλ))

JavaScript(易于转换为C#):

然后将结果分割为所需的基本方向,例如,如果方位在-45(315度)到45度之间,则为北,依此类推

public string Cardinal(double degrees)
{
    if (degrees > 315.0 || degrees < 45.0)
    {
        return "N";
    }
    else if (degrees >= 45.0 && degrees < 90)
    {
        return "E";
    }
    // Etc for the whole 360 degrees.  Segment finer if you want NW, WNW, etc.
}
公共字符串基数(双度)
{
如果(度>315.0 | |度<45.0)
{
返回“N”;
}
否则,如果(度>=45.0&&度<90)
{
返回“E”;
}
//整个360度的等。如果你想要NW、WNW等,分段更精细。
}

我是否可以假设计算大轴承圆的灰线只是函数而不是代码?@StephanM:如果灰线是指带有希腊符号的线,那么是的。我用代码更新了答案。dLon来自哪里?@StephanM:dLon是以度为单位的经度。我是否可以假设计算大轴承圆的灰线只是函数而不是代码?@StephanM:如果灰线是指带有希腊符号的那条,是的。我用代码更新了答案。德隆来自哪里?@StephanM:德隆是以度为单位的经度。