> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wherobots.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ST_Project

Calculates a new point location given a starting point, distance, and azimuth. The azimuth indicates the direction, expressed in radians, and is measured in a clockwise manner starting from true north. The system can handle azimuth values that are negative or exceed 2π (360 degrees). The optional `lenient` parameter prevents an error if the input geometry is not a Point. Its default value is `false`.

<img src="https://mintcdn.com/wherobots/wLm_IRUSNlHZTHJP/images/sql-functions/ST_Project/ST_Project.svg?fit=max&auto=format&n=wLm_IRUSNlHZTHJP&q=85&s=fc80bd05fea7379227d7931085079369" alt="ST_Project" width="500" height="300" data-path="images/sql-functions/ST_Project/ST_Project.svg" />

## Signatures

```sql theme={"system"}
ST_Project(point: Geometry, distance: Double, azimuth: Double, lenient: Boolean = False)
```

```sql theme={"system"}
ST_Project(point: Geometry, distance: Double, Azimuth: Double)
```

## Parameters

<ParamField body="point" type="Geometry" required>
  The starting point geometry.
</ParamField>

<ParamField body="distance" type="Double" required>
  The distance to project, in the units of the coordinate system.
</ParamField>

<ParamField body="azimuth" type="Double" required>
  The azimuth (direction) in radians, measured clockwise from true north.
</ParamField>

<ParamField body="lenient" type="Boolean" default="False">
  If `true`, returns an empty point instead of throwing an error when the input is not a Point. Defaults to `false`.
</ParamField>

## Return type

<ResponseField type="Geometry">
  The resulting geometry.
</ResponseField>

## Examples

```sql theme={"system"}
SELECT ST_Project(ST_GeomFromText('POINT (10 15)'), 100, radians(90))
```

```
POINT (110 14.999999999999975)
```

```sql theme={"system"}
SELECT ST_Project(
        ST_GeomFromText('POLYGON ((1 5, 1 1, 3 3, 5 3, 1 5))'),
        25, radians(270), true)
```

```
POINT EMPTY
```
