C# 度分秒转经纬度
时间: 2024-09-27 14:15:29 浏览: 51
C#度分秒转换
在C#中,将度、分、秒转换为经纬度通常用于表示地理坐标。经纬度是由经度(longitude)和纬度(latitude)组成的,两者都是浮点数。这里是一个基本示例,展示如何把角度转换成双精度数:
```csharp
public static (double Latitude, double Longitude) DmsToDecimal(double degrees, double minutes, double seconds, double arcseconds)
{
const double arcSecondInMeter = 0.000277777778; // 单位换算因子
// 将角度部分转换为弧度
double decimalDegrees = degrees + minutes / 60 + seconds / 3600;
// 如果有弧秒,加上它
if (arcseconds > 0)
{
decimalDegrees += arcseconds / (arcSecondInMeter * 3600);
}
// 经度和纬度的转换范围相反
return (Math.Sign(degrees) * decimalDegrees, Math.Sign(degrees) ? decimalDegrees : -decimalDegrees); // 纬度保持正负方向,经度如果大于180,则取其绝对值
}
```
这个函数接受四个参数,分别代表度、分、秒和弧秒,并返回一个元组,包含经度和纬度。注意经度范围从-180到180,而纬度范围从-90到90。
阅读全文