EXIF与元数据指南
阅读约 1 分钟

如何从照片文件中提取 GPS 位置

一只手把放大镜举在地图上方,放大了下方的一片山地地形

要从照片文件中提取 GPS 位置,你只需用能读取元数据的工具打开图片,然后查看 GPS 分组。这里既没有计算,也没有联网查询。坐标早就躺在文件里,是在开启了定位服务的手机按下快门那一刻写进去的。你得到的是一个纬度和一个经度,外加一小组配套标签,它们决定这两个数字是否真的是你以为的意思。

读出这一对数值很容易。正确地读出它们才是大多数人出错的地方,下文解释原因。

如何从照片文件中提取 GPS 位置

  1. 用元数据查看器打开照片,或者在操作系统的文件属性面板中打开。
  2. 找到标着 GPS 的那一节,它与相机和曝光的部分是分开的。
  3. 读出纬度和经度,然后立刻读出它们的两个半球标签。
  4. 把它们合成一组带符号的数值,粘贴到任意地图里确认定位点。
  5. 在信任它之前,看看这次定位是怎么得到的,以及它声称的精度是多少。

第一步有个值得了解的隐私细节。大多数在线元数据读取工具会把你的照片上传到服务器再解析,这等于把你本想查看的精确坐标交给了陌生人。我们的 EXIF 查看器在你的浏览器里读取文件,不会把它发送到任何地方,而这一点在这类工具上比在几乎任何其他工具上都更重要。

EXIF viewer listing a photo's GPS group, showing latitude, longitude and their N/S and E/W reference letters
从一个真实文件中读出的 GPS 分组。

为什么文件里的数字少了负号

打开一张在里约热内卢拍摄的照片,纬度不会显示为 −22.95,而会显示 22、57 和 6.98:三个独立的正数,旁边还有一个只存放一个字母 S 的标签。

每个人都会在这里栽一次跟头。文件从不存储负的坐标。它把度、分、秒存为正值,把半球放进一个配套标签里:GPSLatitudeRef 存放 NSGPSLongitudeRef 存放 EW

以里约的基督像为例,它位于 22°57′7″S, 43°12′38″W。要还原地图期待的十进制数值,把分除以 60、秒除以 3,600,加到度上,再让那个字母决定符号:

  • 22 + (57 ÷ 60) + (6.98 ÷ 3600) = 22.95194
  • 配套标签写的是 S,所以答案是 −22.95194
  • 43 + (12 ÷ 60) + (38.02 ÷ 3600) = 43.21056,而 W 把它变成 −43.21056

丢掉这两个半球标签,同一张照片就会声称自己拍摄于索马里海岸外,相距约 9,000 公里,而且任何地方都不会报错。只给你一个光秃秃的正数、不给字母的查看器,只给了你一半答案。

告诉你该不该相信这个定位点的标签

无论坐标来自卫星定位还是有人在输入框里敲进去,看上去都一样笃定。GPS 分组里的两个标签能给出答案,却几乎没人去读。

GPSProcessingMethod 记录位置是如何获得的。EXIF 规范定义了四种取值:卫星定位、基站、Wi‑Fi 网络,或手动输入。位置是手工敲进去的照片,做出的是一项声明而不是一次测量:这个区别决定了一张图片能否在保险或验收档案中作为证据使用。

GPSHPositioningError 以米为单位记录这次定位可能偏差多远。这是"就是这扇门"和"在这个邮编范围内的某处"之间的差别。那些含糊地提醒你注意 GPS 漂移的指南,说的正是这个标签所测量的东西。

把这两个标签放在一起读,一个定位点要么变成带有明确置信度的证据,要么暴露为一次猜测。如果客户发来现场照片,而位置是手动输入且没有精度数值,你现在就知道该开口问了。

相机站在哪里,和它对着什么

主坐标对回答的是摄影者站在哪里。它并不说明对方在看什么,而在房产、测绘和验收工作中,这道缺口很要紧。

GPSImgDirection 保存相机所朝向的罗盘方位,并由一个配套标签记录该方位是以真北还是磁北为基准测量的。两者的差别足以指向另一栋楼。正是这个标签把在店外拍的照片和在店内拍的照片区分开来。

此外还有第二组鲜为人知的位置标签,它留给被摄对象而不是相机,因此一个文件可以同时记录摄影者站在哪里以及他在拍什么。写入它的相机很少,但测绘和无人机工具会写,而只显示第一组的查看器会悄悄把第二组藏起来。

与坐标一起读取时钟

GPS 分组带有自己的日期和时间,且以 UTC 记录。文件其他位置那个常见的拍摄时间戳,用的是相机的本地时间。

两者之间的差值就是照片拍摄地所在的时区,这是一项有用的交叉核对:一张声称位于巴西、两个时钟却相差九小时的照片,是在告诉你有地方不对劲。文件若被编辑过或由若干部分拼凑而成,这一对数值常常会以像素永远不会暴露的方式互相矛盾。

当文件里根本没有位置时

GPS 一节为空很常见,通常也无可厚非。可能是定位服务关着,可能相机没有接收模块,可能是在室内没有信号时拍的,也可能照片已经经过了某个会清除元数据的平台。2023 年一项针对 2,475 组上传图片的研究发现,Facebook 删除了除 Artist 和 Copyright 之外的每一个 EXIF 字段,所以从信息流里另存回来的照片,GPS 一节通常空空如也。

从未被写入过的坐标,没有任何手段能恢复。没有工具能从像素里推断出来。你能做的是有意识地把它设上。如果你知道照片在哪里拍的,而文件需要说明这一点,那就把坐标写进文件,上面描述的那些标签就会被写入。

有两件相邻的事值得与本文区分开。照片所携带的每一个字段的完整说明,而不只是 GPS 分组,收录在可编辑标签参考里。而如果你读取位置的原因是想在照片发出去之前把它清掉,那么移除地理标签是另一项操作,坑也不一样;读取它和清除它并不是一回事。

照片地理标记与 EXIF 元数据工具

您的图片缺少位置元数据吗?

为照片写入 GPS 经纬度和 EXIF 标签,可以提升它们在搜索和 Google 地图本地结果中的表现。

免费试用
DEVFINIX
撰稿

DEVFINIX

Devfinix是一家提供全案服务的数字代理机构:定制网站与移动开发、基于Shopify和WordPress的建站、技术SEO以及付费社交投放。这里的文章正是来自这些SEO实践,从审计、元数据处理,到真实客户网站上出现的本地搜索问题。

相关文章

Explore more tutorials & local SEO guides