C# 将DDMM.MMMM转换为经纬度
时间: 2024-10-19 08:13:09 浏览: 39
在C#中,将DDMM.MMMM格式的GPS坐标转换为经纬度,需要先拆分字符串,然后转换各个部分为度数。下面是一个示例函数来完成这个任务:
```csharp
public static GeoCoordinate DDMM_MMMMToGeoCoordinate(string gpsString)
{
string[] parts = gpsString.Split('.');
double degrees = Double.Parse(parts[0].PadLeft(2, '0')); // 整数部分,不足两位补零
double minutes = Double.Parse(parts[1].Substring(0, 2)); // 分钟,保留两位
double seconds = Double.Parse(parts[1].Substring(2, 4)) / 60; // 秒,除以60变为分数
if (parts.Length > 2 && parts[2] != "") // 检查是否包含方向信息(北南东西)
{
if (parts[2][0] == 'S')
degrees *= -1;
else if (parts[2][0] == 'W')
minutes *= -1;
}
return new GeoCoordinate(degrees + minutes / 60, degrees); // 经纬度分开存储
}
```
这个函数假设GPS字符串格式是“DDD.DDMM.MMMMM”(如120.68.789)。注意,对于东西方向,我们只改变分钟(因为秒不会改变方向),南北方向则会改变整个度数。
阅读全文