如何在 Linux 中查找照片的地理位置?

如何在 Linux 中查找照片的地理位置?

我在我的 Ubuntu 机器上拍摄了一些照片,我想知道它们是否包含地理位置,如果是,它们是什么。

我怎样才能做到这一点?

答案1

exiftool可用于打印图像的元数据。如果在拍摄图像时存储了位置(通常称为“地理标记'),您可以在那里找到它:

$ exiftool 23.jpg  | grep GPS
GPS Latitude Ref                : North
GPS Longitude Ref               : East
GPS Latitude                    : 35 deg 32' 16.80" N
GPS Longitude                   : 139 deg 29' 49.20" E
GPS Position                    : 35 deg 32' 16.80" N, 139 deg 29' 49.20" E
$

您还可以使用 exiftool 从现有图像中去除 GPS 信息:

$ exiftool -gps:all= 23.jpg
    1 image files updated
$ exiftool 23.jpg | grep GPS
$

任何可以查看图像元数据的工具都可以查看此信息。例如,identifyImageMagic 的工具也可以这样做:

$ identify -verbose 23.jpg | grep GPS
    exif:GPSInfo: 640
    exif:GPSLatitude: 35/1, 3228/100, 0/1
    exif:GPSLatitudeRef: N
    exif:GPSLongitude: 139/1, 2982/100, 0/1
    exif:GPSLongitudeRef: E
$

并且 GUI 工具通常也可以这样做 - 这是来自 Ubuntu 18 的图像查看器:

图片查看器详细信息/元数据

许多图像的元数据中没有 GPS 条目 - 例如,如果你用没有 GPS 的相机拍照,它就不会存储它 - 这里有一个相机列表有GPS。

当然,大多数手机都有 GPS,并且通常会默认进行地理标记。您可以选择在安卓iPhone 手机

答案2

此命令将检查目录中的照片并查找 Exif 中是否保存了地理标签。它将报告发现数据的那些:

for f in *.jpg; do CMD="$(exiftool -a -gps:all "$f" 2>/dev/null | grep "GPS Latitude")"; RET=$?; if [ "$RET" -eq "0" ]; then echo "$f"; fi; done

如果您想要自动解析计算机可读格式的地理信息,以便进一步处理坐标,您可以使用此

exiftool -c "%+.6f" "$1" |grep "GPS Position" | cut -d":" -f2 | tr -d ' '

此工具(bash 脚本)自动对作为参数传递给它的文件执行此操作: https://gist.github.com/pas-calc/0e6063affa749fedc2e51cea88345929。结果将显示在地理工具网站。

答案3

如果您的文件管理器是 Nemo,那么可插入操作集合可能会有所帮助:https://github.com/sn-ushakov/exif-gps-mapping-nemo。它允许在 Nemo 的弹出窗口中显示媒体文件的 Exif 元数据,以及在 OpenStreetMap、Google Maps 或任何其他地图中显示拍摄地点。屏幕截图可在 README 中找到...

相关内容