# How the CONVEXHULL() function works in Mariadb?

The `CONVEXHULL()`

function is a spatial function that returns the convex hull of a geometry. The convex hull of a geometry is the smallest convex polygon that contains the geometry.

The `CONVEXHULL()`

function is a spatial function that returns the convex hull of a geometry. The convex hull of a geometry is the smallest convex polygon that contains the geometry. The function returns a geometry that represents the convex hull of the input geometry.

## Syntax

The syntax of the `CONVEXHULL()`

function is as follows:

```
CONVEXHULL(g)
```

The function takes one argument, `g`

, which is the geometry to be processed. The argument can be a string or an expression that evaluates to a string. The function returns NULL if the argument is NULL or not a valid geometry.

## Examples

### Example 1: Getting the convex hull of a point

The following example uses the `CONVEXHULL()`

function to get the convex hull of a point. The point is defined by the coordinates (1, 1).

```
SELECT CONVEXHULL(ST_GeomFromText('POINT(1 1)'));
```

The output is:

```
+-------------------------------------+
| CONVEXHULL(ST_GeomFromText('POINT(1 1)')) |
+-------------------------------------+
| POINT(1 1) |
+-------------------------------------+
```

The output shows that the convex hull of a point is the point itself, as expected.

### Example 2: Getting the convex hull of a line

The following example uses the `CONVEXHULL()`

function to get the convex hull of a line. The line is defined by two points: (0, 0) and (2, 2).

```
SELECT CONVEXHULL(ST_GeomFromText('LINESTRING(0 0,2 2)'));
```

The output is:

```
+-----------------------------------------+
| CONVEXHULL(ST_GeomFromText('LINESTRING(0 0,2 2)')) |
+-----------------------------------------+
| LINESTRING(0 0,2 2) |
+-----------------------------------------+
```

The output shows that the convex hull of a line is the line itself, as expected.

### Example 3: Getting the convex hull of a polygon

The following example uses the `CONVEXHULL()`

function to get the convex hull of a polygon. The polygon is defined by four points: (0, 0), (0, 2), (1, 1), and (2, 0).

```
SELECT CONVEXHULL(ST_GeomFromText('POLYGON((0 0,0 2,1 1,2 0,0 0))'));
```

The output is:

```
+---------------------------------------------+
| CONVEXHULL(ST_GeomFromText('POLYGON((0 0,0 2,1 1,2 0,0 0))')) |
+---------------------------------------------+
| POLYGON((0 0,0 2,2 0,0 0)) |
+---------------------------------------------+
```

The output shows that the convex hull of the polygon is a triangle that contains the polygon, as expected.

### Example 4: Getting the convex hull of a multipoint

The following example uses the `CONVEXHULL()`

function to get the convex hull of a multipoint. The multipoint is defined by five points: (0, 0), (0, 2), (1, 1), (2, 0), and (2, 2).

```
SELECT CONVEXHULL(ST_GeomFromText('MULTIPOINT(0 0,0 2,1 1,2 0,2 2)'));
```

The output is:

```
+-------------------------------------------------+
| CONVEXHULL(ST_GeomFromText('MULTIPOINT(0 0,0 2,1 1,2 0,2 2)')) |
+-------------------------------------------------+
| POLYGON((0 0,0 2,2 2,2 0,0 0)) |
+-------------------------------------------------+
```

The output shows that the convex hull of the multipoint is a quadrilateral that contains the multipoint, as expected.

### Example 5: Getting the convex hull of an invalid geometry

The following example uses the `CONVEXHULL()`

function to get the convex hull of an invalid geometry. The invalid geometry is defined by an empty string.

```
SELECT CONVEXHULL(ST_GeomFromText(''));
```

The output is:

```
+-----------------------------+
| CONVEXHULL(ST_GeomFromText('')) |
+-----------------------------+
| NULL |
+-----------------------------+
```

The output shows that the function returns NULL, as expected. The function returns NULL if the argument is NULL or not a valid geometry.

## Related Functions

There are some other functions that are related to the `CONVEXHULL()`

function in Mariadb. They are:

`ST_ConvexHull()`

: This function is an alias for the`CONVEXHULL()`

function. It follows the OpenGIS specifications for the`ST_ConvexHull()`

function.`ENVELOPE()`

: This function returns the minimum bounding rectangle of a geometry. The function returns a geometry that represents the smallest rectangle that contains the input geometry.`BUFFER()`

: This function returns a geometry that is the buffer of a geometry. The function returns a geometry that represents the area that is within a specified distance from the input geometry.`CENTROID()`

: This function returns the centroid of a geometry. The function returns a point that represents the geometric center of the input geometry.

## Conclusion

The `CONVEXHULL()`

function is a useful function to get the convex hull of a geometry. It can handle different types of geometries, such as points, lines, and polygons. It returns a geometry that represents the smallest convex polygon that contains the input geometry. It is similar to the `ST_ConvexHull()`

function, but with a different name. It is also related to some other functions that provide spatial information or operations on geometries.