## GeocodeLocation GeocodeLocation — Geocode location object |

## Synopsis

    #include <geocode-glib/geocode-glib.h>

    struct              GeocodeLocation;
    struct              GeocodeLocationClass;
    #define             GEOCODE_LOCATION_ACCURACY_UNKNOWN
    #define             GEOCODE_LOCATION_ACCURACY_STREET
    #define             GEOCODE_LOCATION_ACCURACY_CITY
    #define             GEOCODE_LOCATION_ACCURACY_REGION
    #define             GEOCODE_LOCATION_ACCURACY_COUNTRY
    #define             GEOCODE_LOCATION_ACCURACY_CONTINENT
    GeocodeLocation *   geocode_location_new                (gdouble latitude,
                                                             gdouble longitude,
                                                             gdouble accuracy);
    GeocodeLocation *   geocode_location_new_with_description
                                                            (gdouble latitude,
                                                             gdouble longitude,
                                                             gdouble accuracy,
                                                             const char *description);
    double              geocode_location_get_distance_from  (GeocodeLocation *loca,
                                                             GeocodeLocation *locb);
    void                geocode_location_set_description    (GeocodeLocation *loc,
                                                             const char *description);
    const char *        geocode_location_get_description    (GeocodeLocation *loc);
    gdouble             geocode_location_get_latitude       (GeocodeLocation *loc);
    gdouble             geocode_location_get_longitude      (GeocodeLocation *loc);
    gdouble             geocode_location_get_accuracy       (GeocodeLocation *loc);
    guint64             geocode_location_get_timestamp      (GeocodeLocation *loc);

## Object Hierarchy

      GObject
       +----GeocodeLocation

## Properties

      "accuracy"                 gdouble               : Read / Write
      "description"              gchar*                : Read / Write
      "latitude"                 gdouble               : Read / Write
      "longitude"                gdouble               : Read / Write
      "timestamp"                guint64               : Read

## Description

The GeocodeLocation instance represents a location on earth, with an optional description.

## Details

### struct GeocodeLocation

    struct GeocodeLocation;

All the fields in the GeocodeLocation structure are private and should never be accessed directly.

### struct GeocodeLocationClass

    struct GeocodeLocationClass {
    };

All the fields in the GeocodeLocationClass structure are private and should never be accessed directly.

### GEOCODE_LOCATION_ACCURACY_UNKNOWN

    #define GEOCODE_LOCATION_ACCURACY_UNKNOWN -1

Constant representing unknown accuracy.

### GEOCODE_LOCATION_ACCURACY_STREET

    #define GEOCODE_LOCATION_ACCURACY_STREET 1000 /* 1 km */

Constant representing street-level accuracy.

### GEOCODE_LOCATION_ACCURACY_CITY

    #define GEOCODE_LOCATION_ACCURACY_CITY 15000 /* 15 km */

Constant representing city-level accuracy.

### GEOCODE_LOCATION_ACCURACY_REGION

    #define GEOCODE_LOCATION_ACCURACY_REGION 50000 /* 50 km */

Constant representing region-level accuracy.

### GEOCODE_LOCATION_ACCURACY_COUNTRY

    #define GEOCODE_LOCATION_ACCURACY_COUNTRY 300000 /* 300 km */

Constant representing country-level accuracy.

### GEOCODE_LOCATION_ACCURACY_CONTINENT

    #define GEOCODE_LOCATION_ACCURACY_CONTINENT 3000000 /* 3000 km */

Constant representing continent-level accuracy.

### geocode_location_new ()

    GeocodeLocation *   geocode_location_new                (gdouble latitude,
                                                             gdouble longitude,
                                                             gdouble accuracy);

Creates a new GeocodeLocation object.

`latitude` : | a valid latitude
`longitude` : | a valid longitude
`accuracy` : | accuracy of location in meters
Returns : | a new GeocodeLocation object. Use `g_object_unref()` when done.

### geocode_location_new_with_description ()

    GeocodeLocation *   geocode_location_new_with_description
                                                            (gdouble latitude,
                                                             gdouble longitude,
                                                             gdouble accuracy,
                                                             const char *description);

Creates a new GeocodeLocation object.

`latitude` : | a valid latitude
`longitude` : | a valid longitude
`accuracy` : | accuracy of location in meters
`description` : | a description for the location
Returns : | a new GeocodeLocation object. Use `g_object_unref()` when done.

### geocode_location_get_distance_from ()

    double              geocode_location_get_distance_from  (GeocodeLocation *loca,
                                                             GeocodeLocation *locb);

Calculates the distance in km, along the curvature of the Earth, between 2 locations. Note that altitude changes are not taken into account.

`loca` : | a GeocodeLocation
`locb` : | a GeocodeLocation
Returns : | a distance in km.

### geocode_location_set_description ()

    void                geocode_location_set_description    (GeocodeLocation *loc,
                                                             const char *description);

Sets the description of `loc` to `description`.

`loc` : | a GeocodeLocation
`description` : | a description for the location

### geocode_location_get_description ()

    const char *        geocode_location_get_description    (GeocodeLocation *loc);

Gets the description of location `loc`.

`loc` : | a GeocodeLocation
Returns : | The description of location `loc`.

### geocode_location_get_latitude ()

    gdouble             geocode_location_get_latitude       (GeocodeLocation *loc);

Gets the latitude of location `loc`.

`loc` : | a GeocodeLocation
Returns : | The latitude of location `loc`.

### geocode_location_get_longitude ()

    gdouble             geocode_location_get_longitude      (GeocodeLocation *loc);

Gets the longitude of location `loc`.

`loc` : | a GeocodeLocation
Returns : | The longitude of location `loc`.

### geocode_location_get_accuracy ()

    gdouble             geocode_location_get_accuracy       (GeocodeLocation *loc);

Gets the accuracy (in meters) of location `loc`.

`loc` : | a GeocodeLocation
Returns : | The accuracy of location `loc`.

### geocode_location_get_timestamp ()

    guint64             geocode_location_get_timestamp      (GeocodeLocation *loc);

Gets the timestamp (in seconds since Epoc) of location `loc`.

`loc` : | a GeocodeLocation
Returns : | The timestamp of location `loc`.

## Property Details

### The `"accuracy"` property

      "accuracy"                 gdouble               : Read / Write

The accuracy of this location in meters.

Allowed values: >= -1

Default value: -1

### The `"description"` property

      "description"              gchar*                : Read / Write

The description of this location.

Default value: NULL

### The `"latitude"` property

      "latitude"                 gdouble               : Read / Write

The latitude of this location in degrees.

Allowed values: [-90,90]

Default value: 0

### The `"longitude"` property

      "longitude"                gdouble               : Read / Write

The longitude of this location in degrees.

Allowed values: [-180,180]

Default value: 0

### The `"timestamp"` property

      "timestamp"                guint64               : Read

A timestamp in seconds since Epoch.

Allowed values: <= G_MAXINT64

Default value: 0