com.parse

## Class ParseGeoPoint

- java.lang.Object
- - com.parse.ParseGeoPoint

    public class ParseGeoPoint
    extends Object

`ParseGeoPoint` represents a latitude / longitude point that may be associated with a key in a `ParseObject` or used as a reference point for geo queries. This allows proximity based queries on the key.

Only one key in a class may contain a `ParseGeoPoint`.

Example:

     ParseGeoPoint point = new ParseGeoPoint(30.0, -20.0);
     ParseObject object = new ParseObject("PlaceObject");
     object.put("location", point);
     object.save();

### Constructor Summary

Constructors
Constructor and Description
`ParseGeoPoint()` Creates a new default point with latitude and longitude set to 0.0.
`ParseGeoPoint(double latitude, double longitude)` Creates a new point with the specified latitude and longitude.

### Method Summary

Methods
`double` `distanceInKilometersTo(ParseGeoPoint point)` Get distance between this point and another `ParseGeoPoint` in kilometers.
`double` `distanceInMilesTo(ParseGeoPoint point)` Get distance between this point and another `ParseGeoPoint` in kilometers.
`double` `distanceInRadiansTo(ParseGeoPoint point)` Get distance in radians between this point and another `ParseGeoPoint`.
`static Task<ParseGeoPoint>` `getCurrentLocationInBackground(long timeout)` Asynchronously fetches the current location of the device.
`static Task<ParseGeoPoint>` `getCurrentLocationInBackground(long timeout, Criteria criteria)` Asynchronously fetches the current location of the device.
`static void` `getCurrentLocationInBackground(long timeout, Criteria criteria, LocationCallback callback)` Asynchronously fetches the current location of the device.
`static void` `getCurrentLocationInBackground(long timeout, LocationCallback callback)` Asynchronously fetches the current location of the device.
`double` `getLatitude()` Get latitude.
`double` `getLongitude()` Get longitude.
`void` `setLatitude(double latitude)` Set latitude.
`void` `setLongitude(double longitude)` Set longitude.
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### ParseGeoPoint

    public ParseGeoPoint()

Creates a new default point with latitude and longitude set to 0.0.

#### ParseGeoPoint

    public ParseGeoPoint(double latitude,
                 double longitude)

Creates a new point with the specified latitude and longitude.

Parameters:
  `latitude` - The point's latitude.
  `longitude` - The point's longitude.

### Method Detail

#### setLatitude

    public void setLatitude(double latitude)

Set latitude. Valid range is (-90.0, 90.0). Extremes should not be used.

Parameters:
  `latitude` - The point's latitude.

#### getLatitude

    public double getLatitude()

Get latitude.

#### setLongitude

    public void setLongitude(double longitude)

Set longitude. Valid range is (-180.0, 180.0). Extremes should not be used.

Parameters:
  `longitude` - The point's longitude.

#### getLongitude

    public double getLongitude()

Get longitude.

#### distanceInRadiansTo

    public double distanceInRadiansTo(ParseGeoPoint point)

Get distance in radians between this point and another `ParseGeoPoint`. This is the smallest angular distance between the two points.

Parameters:
  `point` - `ParseGeoPoint` describing the other point being measured against.

#### distanceInKilometersTo

    public double distanceInKilometersTo(ParseGeoPoint point)

Get distance between this point and another `ParseGeoPoint` in kilometers.

Parameters:
  `point` - `ParseGeoPoint` describing the other point being measured against.

#### distanceInMilesTo

    public double distanceInMilesTo(ParseGeoPoint point)

Get distance between this point and another `ParseGeoPoint` in kilometers.

Parameters:
  `point` - `ParseGeoPoint` describing the other point being measured against.

#### getCurrentLocationInBackground

    public static Task<ParseGeoPoint> getCurrentLocationInBackground(long timeout)

Asynchronously fetches the current location of the device. This will use a default `Criteria` with no accuracy or power requirements, which will generally result in slower, but more accurate location fixes.

Note: If GPS is the best provider, it might not be able to locate the device at all and timeout.

Parameters:
  `timeout` - The number of milliseconds to allow before timing out.
Returns:
  A Task that is resolved when a location is found.
See Also:
  `LocationManager.getBestProvider(android.location.Criteria, boolean)`, `LocationManager.requestLocationUpdates(String, long, float, android.location.LocationListener)`

#### getCurrentLocationInBackground

    public static void getCurrentLocationInBackground(long timeout,
                                      LocationCallback callback)

Asynchronously fetches the current location of the device. This will use a default `Criteria` with no accuracy or power requirements, which will generally result in slower, but more accurate location fixes.

Note: If GPS is the best provider, it might not be able to locate the device at all and timeout.

Parameters:
  `timeout` - The number of milliseconds to allow before timing out.
  `callback` - callback.done(geoPoint, error) is called when a location is found.
See Also:
  `LocationManager.getBestProvider(android.location.Criteria, boolean)`, `LocationManager.requestLocationUpdates(String, long, float, android.location.LocationListener)`

#### getCurrentLocationInBackground

    public static Task<ParseGeoPoint> getCurrentLocationInBackground(long timeout,
                                                     Criteria criteria)

Asynchronously fetches the current location of the device. This will request location updates from the best provider that match the given criteria and return the first location received. You can customize the criteria to meet your specific needs. * For higher accuracy, you can set `Criteria.setAccuracy(int)`, however result in longer times for a fix. * For better battery efficiency and faster location fixes, you can set `Criteria.setPowerRequirement(int)`, however, this will result in lower accuracy.

Parameters:
  `timeout` - The number of milliseconds to allow before timing out.
  `criteria` - The application criteria for selecting a location provider.
Returns:
  A Task that is resolved when a location is found.
See Also:
  `LocationManager.getBestProvider(android.location.Criteria, boolean)`, `LocationManager.requestLocationUpdates(String, long, float, android.location.LocationListener)`

#### getCurrentLocationInBackground

    public static void getCurrentLocationInBackground(long timeout,
                                      Criteria criteria,
                                      LocationCallback callback)

Asynchronously fetches the current location of the device. This will request location updates from the best provider that match the given criteria and return the first location received. You can customize the criteria to meet your specific needs. * For higher accuracy, you can set `Criteria.setAccuracy(int)`, however result in longer times for a fix. * For better battery efficiency and faster location fixes, you can set `Criteria.setPowerRequirement(int)`, however, this will result in lower accuracy.

Parameters:
  `timeout` - The number of milliseconds to allow before timing out.
  `criteria` - The application criteria for selecting a location provider.
  `callback` - callback.done(geoPoint, error) is called when a location is found.
See Also:
  `LocationManager.getBestProvider(android.location.Criteria, boolean)`, `LocationManager.requestLocationUpdates(String, long, float, android.location.LocationListener)`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`