Ste*_*anM 1 c# google-maps google-earth latitude-longitude computational-geometry
我正在寻找一个允许我发送2个Lat,Longs的功能.1 Lat,long是我的基础,第二个是我想确定它是N,S,E还是West.或者我必须去NW,N,NE,EN,E,ES,SE,S,SW,WS,W,WN?无论哪种方式都有人在C#中有这样的东西吗?
首先,您可以计算出大圆轴承
θ= atan2(sin(Δλ).cos(φ2),cos(φ1).sin(φ2) - sin(φ1).cos(φ2).cos(Δλ))
JavaScript(可轻松转换为C#):
var y = Math.sin(dLon) * Math.cos(lat2);
var x = Math.cos(lat1)*Math.sin(lat2) -
Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon);
var brng = Math.atan2(y, x).toDeg();
Run Code Online (Sandbox Code Playgroud)
http://www.movable-type.co.uk/scripts/latlong.html
然后将结果分割成所需的基本方向,例如,如果方位在-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.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
662 次 |
| 最近记录: |