使用exiftool提取照片中的经纬度

exiftool工具可以对exif信息进行很多的操作。默认情况下:

exiftool a_geo.jpg

会显示各种默认的exif信息,包括经纬度。但默认显示的经纬度是度分秒格式,而我现在需要dd格式的经纬度,则可以这样提取:

exiftool -n -gpslatitude -gpslongitude IMG_3545.JPG

显示的结果为:

GPS Latitude : 42.3176472222222
GPS Longitude : -83.7321083333333

使用exiftool为照片批量添加空间坐标

经常面临这样的问题:出野外拍了很多照片,或出去旅游拍了不少照片,但由于相机上未带GPS,导致相片的exif信息上是没有空间坐标信息的,所以经常需要将一堆照片附加空间坐标信息。常用的解决办法是拍照时再随身携带一个GPS,每次拍照都打一个点,这样可以根据时间信息将空间信息后期对应到照片上。但有的时候,我们并不想携带一个GPS或没有GPS,这是就带GPS的智能手机就发挥作用了(打开GPS然后拍照,相当于GPS导航仪的打点功能)。

一、下载&安装exiftool软件
从官方下载该软件的对应版本,目前支持windows和mac系统。

二、基于GPS设备的处理

exiftool -geotag=track.log /Users/username/path/to/picture

其中,track.log是GPS设备的记录,根据时间信息对应到需要处理的照片上。

三、基于智能手机的处理
首先,需要在拍照的同时,使用打开GPS的智能手机拍照。之后将智能手机的对应照片拷贝出来,从这些照片中将对应的GPS信息导出。

exiftool -fileOrder gpsdatetime -p gpx.fmt -d %Y-%m-%dT%H:%M:%SZ /Users/username/path/to/phone_pictures > out.gpx

其中,gpx.fmt是一个模板,其文件内容如下:

#------------------------------------------------------------------------------
# File: gpx.fmt
#
# Description: Example ExifTool print format file for generating GPX track log
#
# Usage: exiftool -p gpx.fmt -d %Y-%m-%dT%H:%M:%SZ FILE [...] > out.gpx
#
# Requires: ExifTool version 8.10 or later
#
# Revisions: 2010/02/05 - P. Harvey created
#
# Notes: 1) All input files must contain GPSLatitude and GPSLongitude.
# 2) The -fileOrder option may be used to control the order of the
# generated track points.
#------------------------------------------------------------------------------
#[HEAD]
#[HEAD]
#[HEAD] #[HEAD]1
#[HEAD] #[BODY] #[BODY] $gpsaltitude#
#[BODY]
#[BODY]
#[TAIL]
#[TAIL]
#[TAIL]

然后基于生成的out.gpx结果,给待处理的照片添加gps:

exiftool -geotag out.gpx '-geotime<${DateTimeOriginal}+00:00' /path/to/pictures

更多使用方法请参考:
Geotagging with ExifTool