如何翻译形式(度,分,秒)C#的GPS坐标?

时间:2016-02-24 08:46:25

标签: c#

PropertyItem GpsAltitudeProperty = photo.GetPropertyItem(0x0004);
string GpsAltitude = BitConverter.ToString(GpsAltitudeProperty.Value);

textBox7.Text = GpsAltitude.ToString();

显示:

  

21-00-00-00-01-00-00-00-24-00-00-00-01-00-00-00-50-34-00-00-E8-03-00-00

您需要获取表格的坐标:(33度36分13.39秒) 21是十进制系统中的33是十进制系统中的36到24以及第二个记录在16位十六进制系统中不了解的。以及如何以正常方式进入:33度36分13.39秒) 21是十进制系统中的33是十进制系统中的36到24以及第二个记录在16位十六进制系统中不了解的。

1 个答案:

答案 0 :(得分:-1)

您需要阅读BitConverterToInt32

你可以这样写:

byte[] Value = new byte[] { 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x34, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 };
int deg = BitConverter.ToInt32(Value, 0);    // convert first 4 bytes to int
int min = BitConverter.ToInt32(Value, 8);    // convert bytes  8 - 11 to int
int ss = BitConverter.ToInt32(Value, 16);    // convert bytes 16 - 19 to int

double sec = ss / 1000 + Math.Round((ss % 1000) / 1000.0, 2);

string output = string.Format(@"{0} degrees {1} minutes {2} seconds", deg, min, sec);
Console.WriteLine(output);

输出:

33 degrees 36 minutes 13.39 seconds