实验环境
Operation System: Window 10
Exiftool: 11.81
Exiftool提取GPS信息
像行车记录仪记录的视频,其metadata中的GPS都是每隔1秒进行采用,如下图所示。本文将以行车记录仪数据为例讲解如何提取GPS数据,并将其保存至Excel表格中。
exiftool -ee videoname
上图的信息可以直接保存成文件,但是直接保存的话数据并不直观。所以要进行一个预处理再保存。-c "%.6f"
是设置经纬度的输出格式为6位小数,如果不设置的话输出形式为度分秒;-d "%Y-%m-%d %H:%M:%S"
是设置时间的输出格式;-ext MOV *
是提取所有扩展名MOV的视频GPS数据,>> output.csv
是将所有结果添加至outpu.csv文件中,如果要单独保存可以设置成> %f.csv
。最后的结果如下图所示(这里因为是windows环境,要把文件转成(utf-8编码)。
exitool -c "%.6f" -d "%Y-%m-%d %H:%M:%S" -p '$GPSDatetime,$GPSLatitude,$GPSLongitude,$GPSspeed' -ee -ext MOV * >> output.csv
如果要把这个坐标点在地图中显示出来,可以调用地图的API接口。这里我才用的是Google Earth,所以我们还可以把文件设置成KML格式,关于KML读者可以自行参考官方文档 https://developers.google.com/kml/documentation/kml_tut?hl=zh-cn
,这里不做过多介绍。
Exiftool将GPS数据保存至kml文件
要想输出kml文件,那么需要先准备好一个kml的format文件(kml.fmt),如下所示。当然了,我们也可以根据自己的需求更改这个format文件。
#[HEAD]<?xml version="1.0" encoding="UTF-8"?>
#[HEAD]<kml xmlns="http://earth.google.com/kml/2.0">
#[HEAD] <Document>
#[HEAD] <name>test project</name>
#[HEAD] <open>1</open>
#[HEAD] <Style id="Photo">
#[HEAD] <IconStyle>
#[HEAD] <scale>.4</scale>
#[HEAD] <Icon>
#[HEAD] <href>http://maps.google.com/mapfiles/dir_0.png</href>
#[HEAD] </Icon>
#[HEAD] </IconStyle>
#[HEAD] </Style>
#[HEAD] <Folder>
#[HEAD] <name>Waypoints</name>
#[HEAD] <open>0</open>
#[BODY] <Placemark>
#[BODY] <styleUrl>#Photo</styleUrl>
#[BODY] <description>$gpsdatetime</description>
#[BODY] <Point>
#[BODY] <coordinates>$gpslongitude#,$gpslatitude#,0</coordinates>
#[BODY] </Point>
#[BODY] </Placemark>
#[TAIL] </Folder>
#[TAIL] </Document>
#[TAIL]</kml>
exiftool按照format格式生成kml文件
exiftool -p kml.fmt -ee -ext MOV * >> output.kml
打开Google Earth(https://earth.google.com/web/),将生成的output.kml文件(转utf-8编码)导入至Google Earth(需要先设置允许KML)
如果要添加某个坐标的label,可以在生成的kml文件中再添加一下内容。
<Placemark>
<styleUrl>#position</styleUrl>
<name>坐标点的名字</name>
<description>坐标点详细描述</description>
<Point>
<coordinates>-1.97486333333333,52.4799816666667,0</coordinates>
</Point>
</Placemark>