## FolksLocation FolksLocation — A location. Typically latitude and longitude will be based on WGS84. However, folks often has no way of verifying that and just has to assume it's true. |

## Types and Values

#define | FOLKS_TYPE_LOCATION
struct | FolksLocation
struct | FolksLocationClass
| FolksLocationDetails
struct | FolksLocationDetailsIface

## Description

## Functions

## Types and Values

### FOLKS_TYPE_LOCATION

    #define FOLKS_TYPE_LOCATION (folks_location_get_type ())

The type for FolksLocation.

### struct FolksLocation

    struct FolksLocation {
    	GObject parent_instance;
    	FolksLocationPrivate * priv;
    	gdouble latitude;
    	gdouble longitude;
    };

A location. Typically latitude and longitude will be based on WGS84. However, folks often has no way of verifying that and just has to assume it's true.

#### Members

FolksLocationPrivate *`priv`; |  |
gdouble `latitude`; | The latitude. |
gdouble `longitude`; | The longitude. |

Since: 0.9.2

### struct FolksLocationClass

    struct FolksLocationClass {
    	GObjectClass parent_class;
    };

The class structure for `FOLKS_TYPE_LOCATION`. All the fields in this structure are private and should never be accessed directly.

#### Members

### FolksLocationDetails

    typedef struct _FolksLocationDetails FolksLocationDetails;

Location of a contact. folks tries to keep track of the current location and thus favors live data (say, as advertised by a chat service) over static data (from an address book). Static addresses, such as a contact's home or work address, should be presented using the FolksPostalAddressDetails interface. FolksLocationDetails is purely for exposing the contact's current or recent location.

Backends are expected to report only relevant changes in a persona's location. For storage backends like EDS, all changes must have been triggered by a person (e.g. editing the contact) and thus all are relevant.

A backend pulling in live data, for example from a GPS, is expected to filter the data to minimize noise.

folks itself will then apply all changes coming from backends without further filtering.

Since: 0.9.2

### struct FolksLocationDetailsIface

    struct FolksLocationDetailsIface {
    	GTypeInterface parent_iface;
    	void (*change_location) (FolksLocationDetails* self, FolksLocation* location, GAsyncReadyCallback _callback_, gpointer _user_data_);
    	void (*change_location_finish) (FolksLocationDetails* self, GAsyncResult* _res_, GError** error);
    	FolksLocation* (*get_location) (FolksLocationDetails* self);
    	void (*set_location) (FolksLocationDetails* self, FolksLocation* value);
    };

Interface for creating FolksLocationDetails implementations.

#### Members

GTypeInterface `parent_iface`; | the parent interface structure |
`change_location` () | virtual method called by ``folks_location_details_change_location()`` |
`change_location_finish` () | asynchronous finish function for `change_location`, called by ``folks_location_details_change_location()`` |
`get_location` () | getter method for the abstract property "location" |
`set_location` () | setter method for the abstract property "location" |