# getLocation

## Description

Get the current location details (GPS coordinate) of the device.

## Input / Parameter

| Name               | Description                                            | Input Type | Default | Options | Required |
| ------------------ | ------------------------------------------------------ | ---------- | ------- | ------- | -------- |
| timeout            | Connection time out period, in millisecond.            | Number     | -       | -       | -        |
| enableHighAccuracy | To enable or disable high accuracy of GPS coordinates. | Boolean    | False   | -       | -        |

## Output

| Description                        | Output Type |
| ---------------------------------- | ----------- |
| Returns the formatted information. | Object      |

### Object

| Key     | Description                                                             | Output Type |
| ------- | ----------------------------------------------------------------------- | ----------- |
| success | Boolean value to denote whether the function was executed successfully. | Text        |
| message | The message to print.                                                   | Text        |
| data    | Any additional message or data to print.                                | Text        |

## Callback

### callback

The function to be executed when location is obtained successfully.

### errorCallback

The function to be executed when location is not obtained successfully.

## Example

In this example, we will retrieve the device location data and use it as the coordinate value of the `setMapCenter` function.

### Steps

1. Drag a `map` component and a `button` component to a page in the mobile designer.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-41dd7981ed1f56ef29a2ca281b73ad53190f7d49%2FgetLocation-step-1.png?alt=media)
2. Select the event `press` for the button and drag the function `Device.getLocation` to the event flow. Fill in the parameters of the function.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-c1617005ee218539b7775308e82e55872c698a5e%2FgetLocation-step-2.png?alt=media)
3. Drag the function to be executed if the location data is successfully received to the node below `Device.getLocation`. In this example, we are using the `Variable.set` function to save the location data into a variable.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-8d34593516f971b2fc10a565d284a351618756ff%2FgetLocation-step-3.png?alt=media)
4. Drag the function `Device.setMapCenter` below `Variable.set` and fill in the parameters of the function. Use the location data from `Device.getLocation` by adding `Variable.getAttribute` to the `coordinate` field of the `Device.setMapCenter` function.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-cf162d817c9dcea759cbe1886410b649a4da5d6d%2FgetLocation-step-4.png?alt=media)

### Result

1. The location data will be received and it's `latLng` value (latitude and longitude) will be used as the center of the Map component.
