struct GpsData
{
bool isVersionIdValid;
bool isLatitudeValid;
bool isLongitudeValid;
bool isAltitudeRefValid;
bool isAltitudeValid;
bool isTimeStampValid;
bool isDopValid;
bool isSpeedValid;
bool isTrackValid;
bool isImgDirectionValid;
bool isDestLatitudeValid;
bool isDestLongitudeValid;
bool isDestBearingValid;
bool isDestDistanceValid;
bool isDifferentialValid;
u8 altitudeRef;
u8 versionId[GPS_VERSION_ID_SIZE];
char latitudeRef[GPS_REF_SIZE];
char longitudeRef[GPS_REF_SIZE];
char status[GPS_REF_SIZE];
char measureMode[GPS_REF_SIZE];
char speedRef[GPS_REF_SIZE];
char trackRef[GPS_REF_SIZE];
char imgDirectionRef[GPS_REF_SIZE];
char destLatitudeRef[GPS_REF_SIZE];
char destLongitudeRef[GPS_REF_SIZE];
char destBearingRef[GPS_REF_SIZE];
char destDistanceRef[GPS_REF_SIZE];
u16 differential;
Rational latitude[NUM_GPS_LATITUDE_RATIONALS];
Rational longitude[NUM_GPS_LONGITUDE_RATIONALS];
Rational altitude;
Rational timeStamp[NUM_GPS_TIME_STAMP_RATIONALS];
const char * pSatellites;
Rational dop;
Rational speed;
Rational track;
Rational imgDirection;
const char * pMapDatum;
Rational destLatitude[NUM_GPS_LATITUDE_RATIONALS];
Rational destLongitude[NUM_GPS_LONGITUDE_RATIONALS];
Rational destBearing;
Rational destDistance;
const u8 * pProcessingMethod;
size_t processingMethodSize;
const u8 * pAreaInformation;
size_t areaInformationSize;
const char * pDateStamp;
};
This structure maintains GPS IFD in a format easily processed by the library.
To get information after decoding (after Exif information has been extracted), use ClearGpsData.
To register information before encoding, first initialize the structure using JpegMpEncoder::InitializeGpsData and then register data using JpegMpEncoder::SetGpsLatitude, for example. Finally, confirm the contents of the structure using JpegMpEncoder::SetGpsData.
| isVersionIdValid | Indicates whether the versionID is valid. | |
|---|---|---|
| isLatitudeValid | Indicates whether latitude is valid. | |
| isLongitudeValid | Indicates whether longitude is valid. | |
| isAltitudeRefValid | Indicates whether altitudeRef is valid. | |
| isAltitudeValid | Indicates whether altitude is valid. | |
| isTimeStampValid | Indicates whether timeStamp is valid. | |
| isDopValid | Indicates whether dop is valid. | |
| isSpeedValid | Indicates whether speed is valid. | |
| isTrackValid | Indicates whether track is valid. | |
| isImgDirectionValid | Indicates whether imgDirection is valid. | |
| isDestLatitudeValid | Indicates whether destLatitude is valid. | |
| isDestLongitudeValid | Indicates whether destLongitude is valid. | |
| isDestBearingValid | Indicates whether destBearing is valid. | |
| isDestDistanceValid | Indicates whether destDistance is valid. | |
| isDifferentialValid | Indicates whether differential is valid. | |
| altitudeRef | Represents the altitude reference. | |
| versionId | Represents the GPS tag version. | |
| latitudeRef | Represents North (N) or South (S). Valid if element 0 is not 0. Element [1] is always 0. | |
| longitudeRef | Represents East (E) or West (W) Valid if element 0 is not 0. Element [1] is always 0. | |
| status | Represents the GPS receiver status. Valid if element 0 is not 0. Element [1] is always 0. | |
| measureMode | Represents the GPS measure mode. Valid if element 0 is not 0. Element [1] is always 0. | |
| speedRef | Represents the velocity unit. Valid if element 0 is not 0. Element [1] is always 0. | |
| trackRef | Represents the track direction. Valid if element 0 is not 0. Element [1] is always 0. | |
| imgDirectionRef | Represents the orientation of the captured image. Valid if element 0 is not 0. Element [1] is always 0. | |
| destLatitudeRef | Represents North (N) or South (S) latitude of the destination. Valid if element 0 is not 0. Element [1] is always 0. | |
| destLongitudeRef | Represents East (E) or West (W) longitude of the destination. Valid if element 0 is not 0. Element [1] is always 0. | |
| destBearingRef | Represents the destination bearing for the destination. Valid if element 0 is not 0. Element [1] is always 0. | |
| destDistanceRef | Represents the distance to the destination. Valid if element 0 is not 0. Element [1] is always 0. | |
| differential | Represents the GPS differential. | |
latitude
|
Represents the latitude (numeric value). | |
longitude
|
Represents the longitude (numeric value). | |
| altitude | Represents the altitude (numeric value). | |
| timeStamp | Represents the GPS time (atomic clock time) | |
| pSatellites | Represents the satellite signal used for positioning. Valid unless NULL. | |
| dop | Represents the reliability of the position. | |
| speed | Represents the speed (numeric value). | |
| track | Represents the track direction (numeric value). | |
| imgDirection | Represents the orientation of the captured image. | |
| pMapDatum | Represents map data used for positioning. Valid unless NULL. | |
| destLatitude | Represents the latitude of the destination (numeric value). | |
| destLongitude | Represents the longitude of the destination (numeric value). | |
| destBearing | Represents the destination bearing (numeric value). | |
| destDistance | Represents the distance to the destination (numeric value). | |
| pProcessingMethod | Represents the name of the processing method. Valid unless NULL. | |
| processingMethodSize | Represents the data size in bytes of pProcessingMethod. Valid unless 0. | |
| pAreaInformation | Represents the name of the identified area. Valid unless NULL. | |
| areaInformationSize | Represents the data size in bytes of pAreaInformation. Valid unless 0. | |
| pDateStamp | Represents the GPS date stamp. Valid unless NULL. |
CONFIDENTIAL