Android 以 jpeg 格式存储 GPS 已损坏

Android storing GPS in jpeg gets corrupted

我创建了一个简单的 Android-应用程序,它可以拍照并将设备的 GPS 信息存储在 jpg 文件的 exif 标签中。下面的代码展示了这个过程(我知道它很乱)

Android.Locations.Location loc = await client.GetLastLocationAsync();
ByteBuffer buffer = mImage.GetPlanes()[0].Buffer;
byte[] bytes = new byte[buffer.Remaining()];
buffer.Get(bytes);

using (var output = new FileOutputStream(mFile))
{
    try
    {
        output.Write(bytes);
        output.Flush();

        ExifInterface exif = new ExifInterface(mFile.AbsolutePath);
        string[] degMinSec = Location.Convert(loc.Latitude, Format.Seconds).Split(':');
        string dms = degMinSec[0] + "/1," + degMinSec[1] + "/1" + degMinSec[2] + "/1000";

        string[] degMinSec1 = Location.Convert(loc.Longitude, Format.Seconds).Split(':');
        string dms1 = degMinSec1[0] + "/1," + degMinSec1[1] + "/1" + degMinSec1[2] + "/1000";

        exif.SetAttribute(ExifInterface.TagGpsLatitude, dms);
        exif.SetAttribute(ExifInterface.TagGpsLatitudeRef, loc.Latitude < 0?"S":"N");
        exif.SetAttribute(ExifInterface.TagGpsLongitude, dms1);
        exif.SetAttribute(ExifInterface.TagGpsLongitudeRef, loc.Longitude < 0 ? "W" : "E");
        exif.SaveAttributes();

    }
    ...

所以现在问题: 当我拍照并调试 loc 变量时,它看起来像这样:

如您所见,纬度为 48.4080605,经度为 15.6257273

当我调试转换后的值 dms & dms1 它们显示这些值:

dms 代表纬度,值为 48° 24' 29.0178'',dms1 代表经度,值为 15° 37' 32.61828''。

当我查看 metapicz.com 中的图片 exif 数据时,它显示这些值:

任何人都可以向我解释发生了什么以及我做错了什么吗? 我不明白为什么它显示的位置与应有的位置不同

dms = degMinSec[0] + "/1," + degMinSec[1] + "/1" + degMinSec[2] + "/1000"; 

不应该是

dms = degMinSec[0] + "/1," + degMinSec[1] + "/1," + degMinSec[2] + "/1000"; 

?