经纬度的度分秒与十进制转换: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'E | GPS 接收器、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
列出公式
十进制的度 = 度 + 分 ÷ 60 + 秒 ÷ 3,600
- 2
代入数字
35 度 40 分 52.45 秒:35 + 40 ÷ 60 + 52.45 ÷ 3,600 = 35 + 0.666667 + 0.014569 = 35.681236
- 3
南纬和西经要加负号
十进制中,北纬和东经为正,南纬和西经为负。像纽约这样位于西经的地方忘了加符号,就会指向东经 74 度的中亚(吉尔吉斯斯坦和中国的国境附近)。
把十进制转换成度分秒的计算
- 1
整数部分是“度”
35.681236 就是 35 度。
- 2
小数部分乘以 60 的整数部分是“分”
0.681236 × 60 = 40.87416,所以是 40 分。
- 3
剩下的小数再乘以 60 就是“秒”
0.87416 × 60 = 52.45,所以是 52.45 秒。合起来是 35 度 40 分 52.45 秒。
Exif 中 GPSLatitude 的读法
在照片的 Exif 中,纬度和经度分别用“度·分·秒”3 个分数(有理数)记录。北纬还是南纬、东经还是西经,以“N”“S”“E”“W”1 个字母存放在 GPSLatitudeRef 和 GPSLongitudeRef 这两个单独的项目中。
| 项目 | 数值示例 | 含义 |
|---|---|---|
| GPSLatitudeRef | N | 北纬 |
| GPSLatitude | 35/1, 40/1, 5245/100 | 35 度·40 分·52.45 秒 |
| GPSLongitudeRef | E | 东经 |
| GPSLongitude | 139/1, 46/1, 165/100 | 139 度·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·位置信息检查器”,就会自动完成这个转换并给出地图链接。
本文介绍的工具
相关文章
Exif Orientation 的含义:1〜8 的值与照片横倒的原因
用手机竖着拍的照片,一放到电脑或博客上就横倒了;删掉 Exif 后照片也躺下了。这些现象几乎都源于 Exif 中一个叫“Orientation(方向)”的项目。本文说明 Orientation 的 1〜8 各代表什么、照片为什么是横着保存的、横倒显示时的改法,以及删除 Exif 时只保留方向的方法。
阅读文章 →裁剪前的照片还在?Exif 内嵌缩略图的检查与删除方法
把照片边缘拍到的地址裁掉了,用贴纸把脸挡住了,放心地发了出去,结果却从照片里找到了本该裁掉的部分。原因是照片文件里存着的一张小图,也就是 Exif 的内嵌缩略图。本文说明缩略图是什么、为什么会留下编辑前的画面、如何判断是否还留着,以及只删除缩略图的方法。
阅读文章 →能从照片看出相机的序列号吗?Exif 的检查与删除方法
很少有人知道,发在博客或社交平台上的照片可以读出所用相机的序列号。单反和无反相机拍的照片,Exif 中可能记录着机身和镜头的序列号。本文说明序列号会写在哪些项目里、被读到会发生什么、手机照片的情况,以及检查和删除的步骤。
阅读文章 →