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.
Tag ID Tag Name Writable Values / Notes 0x0000 GPSVersionID int8u[4] 0x0001 GPSLatitudeRef string[2] 'N' = North
'S' = South0x0002 GPSLatitude rational64u[3] 0x0003 GPSLongitudeRef string[2] 'E' = East
'W' = West0x0004 GPSLongitude rational64u[3] 0x0005 GPSAltitudeRef int8u 0 = Above Sea Level
1 = Below Sea Level0x0006 GPSAltitude rational64u 0x0007 GPSTimeStamp rational64u[3] 0x0008 GPSSatellites string 0x0009 GPSStatus string[2] 'A' = Measurement In Progress
'V' = Measurement Interoperability0x000a GPSMeasureMode string[2] 2 = 2-Dimensional Measurement
3 = 3-Dimensional Measurement0x000b GPSDOP rational64u 0x000c GPSSpeedRef string[2] 'K' = km/h
'M' = mph
'N' = knots0x000d GPSSpeed rational64u 0x000e GPSTrackRef string[2] 'M' = Magnetic North
'T' = True North0x000f GPSTrack rational64u 0x0010 GPSImgDirectionRef string[2] 'M' = Magnetic North
'T' = True North0x0011 GPSImgDirection rational64u 0x0012 GPSMapDatum string 0x0013 GPSDestLatitudeRef string[2] 'N' = North
'S' = South0x0014 GPSDestLatitude rational64u[3] 0x0015 GPSDestLongitudeRef string[2] 'E' = East
'W' = West0x0016 GPSDestLongitude rational64u[3] 0x0017 GPSDestBearingRef string[2] 'M' = Magnetic North
'T' = True North0x0018 GPSDestBearing rational64u 0x0019 GPSDestDistanceRef string[2] 'K' = Kilometers
'M' = Miles
'N' = Nautical Miles0x001a GPSDestDistance rational64u 0x001b GPSProcessingMethod undef 0x001c GPSAreaInformation undef 0x001d GPSDateStamp string[11] (YYYY:MM:DD) 0x001e GPSDifferential int16u 0 = No Correction
1 = Differential Corrected