# GeolocationFunctionModule (/docs/core/reference/api/interfaces/GeolocationFunctionModule)



[@kysoql/core](/docs/core/reference/api) / GeolocationFunctionModule

Geolocation expression helpers exposed to SELECT and ORDER BY callbacks.

## Extended by [#extended-by]

* [`SelectFunctionModule`](/docs/core/reference/api/interfaces/SelectFunctionModule)

## Type Parameters [#type-parameters]

| Type Parameter            |
| ------------------------- |
| `DB`                      |
| `TB` *extends* keyof `DB` |

## Methods [#methods]

<a id="api-geolocation" />

### geolocation() [#geolocation]

```ts
geolocation(latitude, longitude): GeolocationFunctionBuilder;
```

Builds a Salesforce `GEOLOCATION(latitude, longitude)` expression.

#### Parameters [#parameters]

| Parameter   | Type     |
| ----------- | -------- |
| `latitude`  | `number` |
| `longitude` | `number` |

#### Returns [#returns]

[`GeolocationFunctionBuilder`](/docs/core/reference/api/interfaces/GeolocationFunctionBuilder)

***

<a id="api-distance" />

### distance() [#distance]

#### Call Signature [#call-signature]

```ts
distance<First>(
   location,
   destination,
   unit
): DistanceFunctionBuilder<DistanceLiteralOutput<DB, TB, First>, ReferenceFilterable<DB, TB, First>, ReferenceSortable<DB, TB, First>>;
```

Builds a typed Salesforce `DISTANCE(...)` expression.

##### Type Parameters [#type-parameters-1]

| Type Parameter             |
| -------------------------- |
| `First` *extends* `string` |

##### Parameters [#parameters-1]

| Parameter     | Type                                                                                                                     |
| ------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `location`    | `First` & [`LocationFieldReference`](/docs/core/reference/api/type-aliases/LocationFieldReference)\<`DB`, `TB`, `First`> |
| `destination` | [`GeolocationFunctionBuilder`](/docs/core/reference/api/interfaces/GeolocationFunctionBuilder)                           |
| `unit`        | [`DistanceUnit`](/docs/core/reference/api/type-aliases/DistanceUnit)                                                     |

##### Returns [#returns-1]

[`DistanceFunctionBuilder`](/docs/core/reference/api/interfaces/DistanceFunctionBuilder)\<`DistanceLiteralOutput`\<`DB`, `TB`, `First`>, `ReferenceFilterable`\<`DB`, `TB`, `First`>, `ReferenceSortable`\<`DB`, `TB`, `First`>>

#### Call Signature [#call-signature-1]

```ts
distance<First, Second>(
   location,
   destination,
   unit
): DistanceFunctionBuilder<DistanceFieldOutput<DB, TB, First, Second>, BothTrue<ReferenceFilterable<DB, TB, First>, ReferenceFilterable<DB, TB, Second>>, BothTrue<ReferenceSortable<DB, TB, First>, ReferenceSortable<DB, TB, Second>>>;
```

Builds a typed Salesforce `DISTANCE(...)` expression.

##### Type Parameters [#type-parameters-2]

| Type Parameter              |
| --------------------------- |
| `First` *extends* `string`  |
| `Second` *extends* `string` |

##### Parameters [#parameters-2]

| Parameter     | Type                                                                                                                       |
| ------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `location`    | `First` & [`LocationFieldReference`](/docs/core/reference/api/type-aliases/LocationFieldReference)\<`DB`, `TB`, `First`>   |
| `destination` | `Second` & [`LocationFieldReference`](/docs/core/reference/api/type-aliases/LocationFieldReference)\<`DB`, `TB`, `Second`> |
| `unit`        | [`DistanceUnit`](/docs/core/reference/api/type-aliases/DistanceUnit)                                                       |

##### Returns [#returns-2]

[`DistanceFunctionBuilder`](/docs/core/reference/api/interfaces/DistanceFunctionBuilder)\<`DistanceFieldOutput`\<`DB`, `TB`, `First`, `Second`>, `BothTrue`\<`ReferenceFilterable`\<`DB`, `TB`, `First`>, `ReferenceFilterable`\<`DB`, `TB`, `Second`>>, `BothTrue`\<`ReferenceSortable`\<`DB`, `TB`, `First`>, `ReferenceSortable`\<`DB`, `TB`, `Second`>>>
