How the ST_GeomFromText() function works in MariaDB?

The ST_GeomFromText() function in MariaDB is used to construct a geometry value from a Well-Known Text (WKT) representation of a geometry.

Posted on

The ST_GeomFromText() function in MariaDB is an alias for the ST_GeometryFromText() function. It is used to construct a geometry value from a Well-Known Text (WKT) representation of a geometry. It supports various geometry types, including Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection.

Syntax

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

ST_GeomFromText(wkt[, srid])
  • wkt: A Well-Known Text representation of a geometry.
  • srid: The Spatial Reference System Identifier (SRID) for the geometry. If not specified, the default SRID of 0 is used, which represents a non-spatial Cartesian coordinate system.

The function returns a geometry value of the corresponding type if the input is a valid WKT representation of a geometry. If the input is not a valid WKT representation of a geometry, it returns NULL.

Examples

Example 1: Creating a Point geometry

This example demonstrates how to create a Point geometry.

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

The output is as follows:

POINT(1 1)

This creates a Point geometry at coordinates (1, 1).

Example 2: Creating a LineString geometry

This example demonstrates how to create a LineString geometry.

SELECT ST_GeomFromText('LINESTRING(0 0, 1 1, 2 2)');

The output is as follows:

LINESTRING(0 0,1 1,2 2)

This creates a LineString geometry with three vertices at (0, 0), (1, 1), and (2, 2).

Example 3: Creating a Polygon geometry with a specified SRID

This example demonstrates how to create a Polygon geometry with a specified SRID.

SELECT ST_GeomFromText('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))', 4326);

The output is as follows:

POLYGON((0 0,0 1,1 1,1 0,0 0))

This creates a Polygon geometry with four vertices, using the SRID 4326, which represents the World Geodetic System (WGS) 84 spatial reference system.

Example 4: Creating a MultiPoint geometry from a table

This example demonstrates how to create a MultiPoint geometry from a table containing point data.

DROP TABLE IF EXISTS points;
CREATE TABLE points (id INT, x DOUBLE, y DOUBLE);
INSERT INTO points VALUES
    (1, 1.0, 1.0),
    (2, 2.0, 2.0),
    (3, 3.0, 3.0);

SELECT ST_GeomFromText(
    CONCAT('MULTIPOINT(', GROUP_CONCAT(CONCAT(x, ' ', y) SEPARATOR ','), ')')
) AS multipoint
FROM points;

The output is as follows:

MULTIPOINT(1 1,2 2,3 3)

This creates a MultiPoint geometry from the points stored in the points table.

Example 5: Creating a GeometryCollection

This example demonstrates how to create a GeometryCollection.

SELECT ST_GeomFromText('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3))');

The output is as follows:

GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3))

This creates a GeometryCollection containing a Point at (1, 1) and a LineString from (2, 2) to (3, 3).

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

  • MariaDB ST_GeometryFromText() function is the same as ST_GeomFromText(), used to construct a geometry value from a Well-Known Text (WKT) representation of a geometry.
  • MariaDB ST_GeomFromWKB() function is used to construct a geometry value from a Well-Known Binary (WKB) representation of a geometry.
  • MariaDB ST_AsText() function is used to convert a geometry value to its Well-Known Text (WKT) representation.
  • MariaDB ST_AsWKB() function is used to convert a geometry value to its Well-Known Binary (WKB) representation.
  • MariaDB ST_GeometryType() function is used to retrieve the type of a geometry value.

Conclusion

The ST_GeomFromText() function in MariaDB is a crucial tool for creating geometry values from Well-Known Text (WKT) representations. It is an alias for the ST_GeometryFromText() function and supports various geometry types, allowing for specifying spatial reference systems. The provided examples demonstrate different use cases for this function, including creating Point, LineString, Polygon, MultiPoint, and GeometryCollection geometries, as well as constructing geometries from table data. The function is an essential part of the spatial data handling capabilities in MariaDB, enabling developers and users to work with and manipulate geometric data effectively.