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