digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::ItemPosition Class Reference

Public Member Functions

 ItemPosition ()
 Creates a null ItemPosition object.
 
 ItemPosition (const CoreDbAccess &access, qlonglong imageId)
 
 ItemPosition (const ItemPosition &other)
 
 ItemPosition (qlonglong imageId)
 Creates an ItemPosition object for the given image.
 
double accuracy () const
 
double altitude () const
 The altitude in meters.
 
QString altitudeFormatted () const
 Returns the altitude formatted in a user-presentable way in the form "43.45m".
 
void apply ()
 Apply all changes made to this object.
 
QString description () const
 
bool hasAccuracy () const
 
bool hasAltitude () const
 
bool hasCoordinates () const
 
bool hasOrientation () const
 
bool hasRoll () const
 
bool hasTilt () const
 
bool isEmpty () const
 An object is empty if no entry exists in the ItemPosition table for the referenced image, or if the object is null.
 
bool isNull () const
 
QString latitude () const
 Returns latitude/longitude in the format as described by the XMP specification as "GPSCoordinate": A Text value in the form ?DDD,MM,SSk? or ?DDD,MM.mmk?.
 
QString latitudeFormatted () const
 Returns the latitude/longitude in a user-presentable version, in the form "30°45'55.123'' East".
 
double latitudeNumber () const
 Returns latitude/longitude as a double in degrees.
 
bool latitudeUserPresentableNumbers (int *degrees, int *minutes, double *seconds, char *directionReference)
 Returns latitude/longitude as user-presentable numbers.
 
QString longitude () const
 
QString longitudeFormatted () const
 
double longitudeNumber () const
 
bool longitudeUserPresentableNumbers (int *degrees, int *minutes, double *seconds, char *directionReference)
 
ItemPositionoperator= (const ItemPosition &other)
 
double orientation () const
 
void remove ()
 Removes the whole data set for the referenced image from the database.
 
void removeAltitude ()
 Removes the altitude for the referenced image from the database.
 
double roll () const
 
void setAccuracy (double accuracy)
 
void setAltitude (double altitude)
 Set the altitude in meters.
 
void setDescription (const QString &description)
 
bool setLatitude (const QString &latitude)
 Sets the latitude/longitude from the GPSCoordinate string as described by XMP.
 
bool setLatitude (double latitudeNumber)
 Sets the latitude/longitude from a double floating point number, as described for latitudeNumber() above.
 
bool setLongitude (const QString &longitude)
 
bool setLongitude (double longitudeNumber)
 
void setOrientation (double orientation)
 
void setRoll (double roll)
 
void setTilt (double tilt)
 
double tilt () const
 

Constructor & Destructor Documentation

◆ ItemPosition()

Digikam::ItemPosition::ItemPosition ( qlonglong  imageId)
explicit

The information is read from the database.

Member Function Documentation

◆ apply()

void Digikam::ItemPosition::apply ( )

(Also called from destructor)

◆ isEmpty()

bool Digikam::ItemPosition::isEmpty ( ) const

An empty object is empty even if values have been set; it becomes not empty after calling apply().

◆ latitude()

QString Digikam::ItemPosition::latitude ( ) const

This provides lossless storage.

◆ latitudeNumber()

double Digikam::ItemPosition::latitudeNumber ( ) const

North and East have a positive sign, South and West negative. This provides high precision, with the usual floating point concerns, and possible problems finding the exact text form when converting back to fractions.

◆ latitudeUserPresentableNumbers()

bool Digikam::ItemPosition::latitudeUserPresentableNumbers ( int *  degrees,
int *  minutes,
double *  seconds,
char *  directionReference 
)

This means that degrees and minutes are integer, the seconds fractional. Direction reference is 'N'/'S', 'E'/'W' resp. This is for the purpose of presenting to the user, there are no guarantees on precision. Returns true if the values have been changed.

◆ remove()

void Digikam::ItemPosition::remove ( )

This object and any ItemPosition object created later will be empty.

◆ setLatitude() [1/2]

bool Digikam::ItemPosition::setLatitude ( const QString &  latitude)

Returns true if the format is accepted.

◆ setLatitude() [2/2]

bool Digikam::ItemPosition::setLatitude ( double  latitudeNumber)

Returns true if the value is valid and accepted.