## GPS Tags

These GPS tags are part of the EXIF standard, and are stored in a separate IFD within the EXIF information.

ExifTool is very flexible about the input format when writing lat/long coordinates, and will accept from 1 to 3 floating point numbers (for decimal degrees, degrees and minutes, or degrees, minutes and seconds) separated by just about anything, and will format them properly according to the EXIF specification.

Some GPS tags have values which are fixed-length strings. For these, the indicated string lengths include a null terminator which is added automatically by ExifTool. Remember that the descriptive values are used when writing (ie. 'Above Sea Level', not '0') unless the print conversion is disabled (with '-n' on the command line, or the PrintConv option in the API).

When adding GPS information to an image, it is important to set all of the following tags: GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, GPSAltitude and GPSAltitudeRef. ExifTool will write the required GPSVersionID tag automatically if new a GPS IFD is added to an image. All GPS tags listed below are part of the EXIF specification.

> Tag ID | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 0x0000 | GPSVersionID | int8u[4]: |
> 0x0001 | GPSLatitudeRef | string[2] | 'N' = North 'S' = South
> 0x0002 | GPSLatitude | rational64u[3] |
> 0x0003 | GPSLongitudeRef | string[2] | 'E' = East 'W' = West
> 0x0004 | GPSLongitude | rational64u[3] |
> 0x0005 | GPSAltitudeRef | int8u | 0 = Above Sea Level 1 = Below Sea Level
> 0x0006 | GPSAltitude | rational64u |
> 0x0007 | GPSTimeStamp | rational64u[3] | (when writing, date is stripped off if present, and time is adjusted to UTC if it includes a timezone)
> 0x0008 | GPSSatellites | string |
> 0x0009 | GPSStatus | string[2] | 'A' = Measurement Active 'V' = Measurement Void
> 0x000a | GPSMeasureMode | string[2] | 2 = 2-Dimensional Measurement 3 = 3-Dimensional Measurement
> 0x000b | GPSDOP | rational64u |
> 0x000c | GPSSpeedRef | string[2] | 'K' = km/h 'M' = mph 'N' = knots
> 0x000d | GPSSpeed | rational64u |
> 0x000e | GPSTrackRef | string[2] | 'M' = Magnetic North 'T' = True North
> 0x000f | GPSTrack | rational64u |
> 0x0010 | GPSImgDirectionRef | string[2] | 'M' = Magnetic North 'T' = True North
> 0x0011 | GPSImgDirection | rational64u |
> 0x0012 | GPSMapDatum | string |
> 0x0013 | GPSDestLatitudeRef | string[2] | 'N' = North 'S' = South
> 0x0014 | GPSDestLatitude | rational64u[3] |
> 0x0015 | GPSDestLongitudeRef | string[2] | 'E' = East 'W' = West
> 0x0016 | GPSDestLongitude | rational64u[3] |
> 0x0017 | GPSDestBearingRef | string[2] | 'M' = Magnetic North 'T' = True North
> 0x0018 | GPSDestBearing | rational64u |
> 0x0019 | GPSDestDistanceRef | string[2] | 'K' = Kilometers 'M' = Miles 'N' = Nautical Miles
> 0x001a | GPSDestDistance | rational64u |
> 0x001b | GPSProcessingMethod | undef |
> 0x001c | GPSAreaInformation | undef |
> 0x001d | GPSDateStamp | string[11] | (when writing, time is stripped off if present, after adjusting date/time to UTC if time includes a timezone)
> 0x001e | GPSDifferential | int16u | 0 = No Correction 1 = Differential Corrected

(This document generated automatically by Image::ExifTool::BuildTagLookup)
Last revised Jun 11, 2009

<-- ExifTool Tag Names