## GeocluePosition GeocluePosition — Geoclue position client API |

## Functions

GeocluePosition * | geoclue_position_new ()
GeocluePositionFields | geoclue_position_get_position ()
void | (*GeocluePositionCallback) ()
void | geoclue_position_get_position_async ()

## Signals

void | position-changed | No Recursion

## Types and Values

#define | GEOCLUE_POSITION_INTERFACE_NAME

## Object Hierarchy

        GObject
        ╰── GeoclueProvider
            ╰── GeocluePosition

## Description

GeocluePosition contains position-related methods and signals. It is part of the Geoclue public C client API which uses D-Bus to communicate with the actual provider.

After a GeocluePosition is created with `geoclue_position_new()` or using `geoclye_master_client_create_position()`, the `geoclue_position_get_position()` and `geoclue_position_get_position_async()` method and the position-changed signal can be used to obtain the current position.

## Functions

### geoclue_position_new ()

    GeocluePosition *
    geoclue_position_new (const char *service,
                          const char *path);

Creates a GeocluePosition with given D-Bus service name and path.

#### Parameters

service | D-Bus service name |
path | D-Bus path name |

#### Returns

Pointer to a new GeocluePosition

### geoclue_position_get_position ()

    GeocluePositionFields
    geoclue_position_get_position (GeocluePosition *position,
                                   int *timestamp,
                                   double *latitude,
                                   double *longitude,
                                   double *altitude,
                                   GeoclueAccuracy **accuracy,
                                   GError **error);

Obtains the current position. `timestamp` will contain the time of the actual position measurement. `accuracy` is a rough estimate of the accuracy of the current position.

If the caller is not interested in some values, the pointers can be left `NULL`.

#### Parameters

position | A GeocluePosition object |
timestamp | Pointer to returned time of position measurement (Unix timestamp) or `NULL` |
latitude | Pointer to returned latitude in degrees or `NULL` |
longitude | Pointer to returned longitude in degrees or `NULL` |
altitude | Pointer to returned altitude in meters or `NULL` |
accuracy | Pointer to returned GeoclueAccuracy or `NULL` |
error | Pointer to returned Gerror or `NULL` |

#### Returns

A GeocluePositionFields bitfield representing the validity of the position values.

### GeocluePositionCallback ()

    void
    (*GeocluePositionCallback) (GeocluePosition *position,
                                GeocluePositionFields fields,
                                int timestamp,
                                double latitude,
                                double longitude,
                                double altitude,
                                GeoclueAccuracy *accuracy,
                                GError *error,
                                gpointer userdata);

Callback function for `geoclue_position_get_position_async()`.

#### Parameters

position | A GeocluePosition object |
fields | A GeocluePositionFields bitfield representing the validity of the position values |
timestamp | Time of position measurement (Unix timestamp) |
latitude | Latitude in degrees |
longitude | Longitude in degrees |
altitude | Altitude in meters |
accuracy | Accuracy of measurement as GeoclueAccuracy |
error | Error as Gerror or `NULL` |
userdata | User data pointer set in `geoclue_position_get_position_async()` |

### geoclue_position_get_position_async ()

    void
    geoclue_position_get_position_async (GeocluePosition *position,
                                         GeocluePositionCallback callback,
                                         gpointer userdata);

Function returns (essentially) immediately and calls `callback` when current position is available or when D-Bus timeouts.

#### Parameters

position | A GeocluePosition object |
callback | A GeocluePositionCallback function that should be called when return values are available |
userdata | pointer for user specified data |

## Types and Values

### GEOCLUE_POSITION_INTERFACE_NAME

    #define GEOCLUE_POSITION_INTERFACE_NAME "org.freedesktop.Geoclue.Position"

## Signal Details

### The `“position-changed”` signal

    void
    user_function (GeocluePosition *position,
                   gint             fields,
                   gint             timestamp,
                   gdouble          latitude,
                   gdouble          longitude,
                   gdouble          altitude,
                   gpointer         accuracy,
                   gpointer         user_data)

Flags: No Recursion