原理解说发布日期 阅读时间约 8 分钟

经纬度的度分秒与十进制转换:Exif 数值的读法和位数的精度

照片 Exif 中的经纬度是“35/1, 40/1, 5245/100”这样的一串分数,不能直接贴到地图上。地图应用的“35.681236, 139.767125”,导览图的“北纬35度40分52秒”,XMP 的“35,40.8742N”,同一个地点有好几种写法。本文整理度分秒和十进制的相互转换方法、Exif 数值的读法、小数位数和大致精度,以及转换时容易出错的地方。

同一个地点,经纬度有好几种写法

经纬度是用“度”表示的角度。比 1 度更细的部分,用六十进制的“分”和“秒”表示,还是用小数表示,写法就不一样。以东京站附近为例,常用的写法如下。

写法示例主要用途
十进制35.681236, 139.767125谷歌地图、程序、电子表格
度分秒35°40'52.45"N 139°46'1.65"E地图标注、车载导航、测量
度分秒(汉字)北纬35度40分52.45秒 东经139度46分1.65秒中文资料
度和十进制的分35°40.8742'N 139°46.0275'EGPS 接收器、XMP
Exif 数值N: 35/1, 40/1, 5245/100 / E: 139/1, 46/1, 165/100照片 Exif(GPSLatitude·GPSLongitude)

上面 5 种都指向同一地点。只是写法不同,转换后可以相互对应。

把度分秒转换成十进制的计算

1 度=60 分,1 分=60 秒,所以把分除以 60,秒除以 3,600,再加到度上。

  1. 1

    列出公式

    十进制的度 = 度 + 分 ÷ 60 + 秒 ÷ 3,600

  2. 2

    代入数字

    35 度 40 分 52.45 秒:35 + 40 ÷ 60 + 52.45 ÷ 3,600 = 35 + 0.666667 + 0.014569 = 35.681236

  3. 3

    南纬和西经要加负号

    十进制中,北纬和东经为正,南纬和西经为负。像纽约这样位于西经的地方忘了加符号,就会指向东经 74 度的中亚(吉尔吉斯斯坦和中国的国境附近)。

把十进制转换成度分秒的计算

  1. 1

    整数部分是“度”

    35.681236 就是 35 度。

  2. 2

    小数部分乘以 60 的整数部分是“分”

    0.681236 × 60 = 40.87416,所以是 40 分。

  3. 3

    剩下的小数再乘以 60 就是“秒”

    0.87416 × 60 = 52.45,所以是 52.45 秒。合起来是 35 度 40 分 52.45 秒。

Exif 中 GPSLatitude 的读法

在照片的 Exif 中,纬度和经度分别用“度·分·秒”3 个分数(有理数)记录。北纬还是南纬、东经还是西经,以“N”“S”“E”“W”1 个字母存放在 GPSLatitudeRef 和 GPSLongitudeRef 这两个单独的项目中。

项目数值示例含义
GPSLatitudeRefN北纬
GPSLatitude35/1, 40/1, 5245/10035 度·40 分·52.45 秒
GPSLongitudeRefE东经
GPSLongitude139/1, 46/1, 165/100139 度·46 分·1.65 秒

做除法就能得到度·分·秒,然后用前面章节的公式转换成十进制。有些机型像“35/1, 4087416/100000, 0/1”这样,把分存成小数、秒存成 0。这种情况也能用同样的公式计算,结果不变。

“照片 Exif·位置信息检查器”会自动把照片中的经纬度转换成十进制,并给出谷歌地图、日本国土地理院地图和 OpenStreetMap 的链接。在“经纬度转换”标签页,可以把手动输入的度分秒或直接粘贴的 Exif 有理数转换成 6 种写法。

小数位数和大致精度

纬度 1 度在地球上任何地方都约为 111km。所以从十进制的小数位数,可以估计这个数值能把地点表示到多细。

小数位数示例细致程度参考(纬度方向)
2 位35.68约 1.1km(街区范围)
3 位35.681约 110m(街坊)
4 位35.6812约 11m(建筑物)
5 位35.68124约 1.1m(建筑物入口)
6 位35.681236约 11cm

度分秒中,1 秒约为 31m,0.01 秒约为 30cm。手机照片的 Exif 多把秒记录到小数点后 2 位左右,记录的细致程度能看出建筑物入口。经度 1 度在赤道约为 111km,在北纬 35 度附近约为 91km,纬度越高越短。

转换时容易出错的 4 点

  • 纬度和经度的顺序:谷歌地图是“纬度, 经度”的顺序,但 GeoJSON 等部分格式是“经度, 纬度”的顺序。在日本附近,记住 35 左右是纬度、135 左右是经度,就能发现弄反了。
  • 南纬和西经的符号:十进制中要加负号。Exif 中数值本身保持为正,用 Ref 的 1 个字母表示方向,所以转换时容易忘记加符号。
  • 分和秒弄混:“35.40.52”这种用句点分隔的写法,不是 35.4052 度,而是 35 度 40 分 52 秒。
  • 大地测量基准的不同:现在的地图和 GPS 使用世界大地测量基准(WGS84·JGD2011)。日本旧资料中的日本大地测量基准数值,在东京附近偏差 400m 左右。

如何确认照片中是否有位置信息以及公开前如何删除,请看删除照片位置信息的方法;如何保留拍摄日期时间、只删除位置信息,请看不损画质删除 Exif 的方法。

常见问题

把度分秒转换成十进制的公式是什么?
十进制的度 = 度 + 分 ÷ 60 + 秒 ÷ 3,600。35 度 40 分 52.45 秒就是 35.681236。南纬和西经时,在计算结果上加负号。
Exif 的“35/1, 40/1, 5245/100”怎么读?
这是把度·分·秒分别写成分数,表示 35 度 40 分 52.45 秒。北纬还是南纬,以 N 或 S 存放在 GPSLatitudeRef 这个单独的项目中。转换成十进制是 35.681236。
经纬度小数点后要几位才够?
纬度方向上,4 位约 11m,5 位约 1.1m,6 位约 11cm。在地图上标出建筑物,5 位就够了。不过位数多,不代表 GPS 测量达到了那个精度。
怎样在谷歌地图中打开照片的经纬度?
把度分秒转换成十进制,像“35.681236, 139.767125”这样按纬度、经度的顺序用逗号分隔,粘贴到谷歌地图的搜索框。把照片放进“照片 Exif·位置信息检查器”,就会自动完成这个转换并给出地图链接。

本文介绍的工具

相关文章