MariaDB ST_AREA() 函数的基础用法与实例

MariaDB ST_Area() 函数用来计算一个地理空间数据对象的面积。对于单个几何对象,它返回该对象的面积;对于几何对象集合,它返回集合中所有对象面积的总和。

发布于

MariaDB ST_Area() 函数用来计算一个地理空间数据对象的面积。对于单个几何对象,它返回该对象的面积;对于几何对象集合,它返回集合中所有对象面积的总和。

语法

MariaDB ST_Area() 函数的语法如下:

ST_Area(geom)
  • geom:一个地理空间数据对象,可以是 POLYGON、MULTIPOLYGON 等类型。

该函数返回一个双精度浮点数,表示给定地理空间数据对象的面积。如果输入的地理空间数据对象是空的几何集合或非面积几何类型(如点、线等),则返回 0。

实例

计算一个多边形的面积

本实例展示如何计算一个多边形的面积。

SET @poly = 'Polygon((0 0, 10 0, 10 10, 0 10, 0 0))';
SELECT ST_Area(ST_GeomFromText(@poly));

以下是该语句的输出:

+---------------------------------+
| ST_Area(ST_GeomFromText(@poly)) |
+---------------------------------+
|                             100 |
+---------------------------------+

输出结果为 100,表示该多边形的面积为 100 平方单位。

计算一个多边形集合的总面积

本实例展示如何计算一个多边形集合的总面积。

SET @multpoly = 'MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)), ((10 10, 20 10, 20 20, 10 20, 10 10)))';
SELECT ST_Area(ST_GeomFromText(@multpoly));

以下是该语句的输出:

+-------------------------------------+
| ST_Area(ST_GeomFromText(@multpoly)) |
+-------------------------------------+
|                                 200 |
+-------------------------------------+

输出结果为 200,表示该多边形集合中两个多边形的总面积为 200 平方单位。

计算一个多边形表中所有记录的总面积

本实例展示如何计算一个多边形表中所有记录的总面积。


DROP TABLE IF EXISTS poly_table;
CREATE TABLE poly_table (id INT, poly POLYGON);
INSERT INTO poly_table VALUES
    (1, ST_PolygonFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))')),
    (2, ST_PolygonFromText('POLYGON((10 10, 20 10, 20 20, 10 20, 10 10))'));

SELECT SUM(ST_Area(poly)) FROM poly_table;

以下是该语句的输出:

+------------------------+
| SUM(ST_Area(poly))     |
+------------------------+
|                    200 |
+------------------------+

输出结果为 200,表示 poly_table 表中所有记录的多边形总面积为 200 平方单位。

计算一个点对象的面积

本实例展示当输入的地理空间数据对象为点对象时,ST_Area() 函数的返回值。

SELECT ST_Area(POINT(1, 1));

以下是该语句的输出:

+----------------------+
| ST_Area(POINT(1, 1)) |
+----------------------+
|                    0 |
+----------------------+

输出结果为 0,因为点对象没有面积,所以 ST_Area() 函数返回 0。

相关函数

以下是几个与 MariaDB ST_Area() 相关的几个函数:

  • MariaDB ST_LENGTH() 函数用来计算一个地理空间数据对象的长度或周长。

结论

MariaDB ST_Area() 函数是处理地理空间数据时非常有用的一个函数。它可以帮助您计算多边形或多边形集合的面积,对于分析和可视化地理空间数据具有重要作用。