How the ST_ISCLOSED() function works in MariaDB?

The ST_ISCLOSED() function in MariaDB is used to determine whether a given geometry is closed or not.

Posted on

The ST_ISCLOSED() function in MariaDB is used to determine whether a given geometry is closed or not. A closed geometry is one where the start point and end point are the same, forming a closed loop.

Syntax

The syntax for the MariaDB ST_ISCLOSED() function is as follows:

ST_ISCLOSED(geom)
  • geom: This parameter is a value of type GEOMETRY or a value that can be implicitly converted to a GEOMETRY type.

The function returns an integer value:

  • 1 if the geometry is closed.
  • 0 if the geometry is not closed.
  • NULL if the input geometry is NULL.

Examples

Example 1: Closed LineString

This example demonstrates how ST_ISCLOSED() works with a closed LineString.

SET @line = ST_GeomFromText('LINESTRING(0 0, 1 1, 2 0, 0 0)');
SELECT ST_ISCLOSED(@line);

The following is the output:

1

Since the LineString starts and ends at the same point (0 0), it is considered a closed geometry, and the function returns 1.

Example 2: Open LineString

This example demonstrates how ST_ISCLOSED() works with an open LineString.

SET @line = ST_GeomFromText('LINESTRING(0 0, 1 1, 2 0)');
SELECT ST_ISCLOSED(@line);

The following is the output:

0

Since the LineString does not start and end at the same point, it is considered an open geometry, and the function returns 0.

Example 3: Closed Polygon

This example demonstrates how ST_ISCLOSED() works with a closed Polygon.

SET @poly = ST_GeomFromText('POLYGON((0 0, 1 1, 1 0, 0 0))');
SELECT ST_ISCLOSED(@poly);

The following is the output:

1

Since the Polygon starts and ends at the same point (0 0), it is considered a closed geometry, and the function returns 1.

Example 4: Closed MultiLineString

This example demonstrates how ST_ISCLOSED() works with a closed MultiLineString.

SET @mline = ST_GeomFromText('MULTILINESTRING((0 0, 1 1, 2 0, 0 0), (3 3, 4 4, 3 3))');
SELECT ST_ISCLOSED(@mline);

The following is the output:

1

Since both LineStrings in the MultiLineString are closed, the entire MultiLineString is considered closed, and the function returns 1.

Example 5: Open MultiLineString

This example demonstrates how ST_ISCLOSED() works with an open MultiLineString.

SET @mline = ST_GeomFromText('MULTILINESTRING((0 0, 1 1, 2 0), (3 3, 4 4, 3 3))');
SELECT ST_ISCLOSED(@mline);

The following is the output:

0

Since one of the LineStrings in the MultiLineString is open, the entire MultiLineString is considered open, and the function returns 0.

The following are a few functions related to the MariaDB ST_ISCLOSED() function:

  • MariaDB ST_IsClosed() function is an alias for ST_ISCLOSED().
  • MariaDB ST_IsRing() function checks if a given geometry is a ring, meaning a closed and simple linestring.
  • MariaDB ST_IsSimple() function checks if a given geometry does not cross itself and is not self-intersecting.
  • MariaDB ST_IsValid() function checks if a given geometry is valid according to the OGC specifications.

Conclusion

The ST_ISCLOSED() function in MariaDB is a valuable tool for determining whether a given geometry is closed or not. It can be used with various geometry types, including LineStrings, Polygons, and MultiLineStrings. Understanding the behavior of this function is crucial for working with spatial data in MariaDB, especially when dealing with closed geometries or geometries that require specific properties.