Последнее обновление
ST_POLYGON
Описание
Преобразует строку в формате WKT (Well-Known Text) в геометрический объект Polygon, хранящийся в памяти.
Псевдонимы
- st_polygonfromtext
- st_polyfromtext
Синтаксис
ST_POLYGON( <wkt>)
Параметры
| Параметр | Описание |
|---|---|
<wkt> | Текст WKT для многоугольника, созданного функцией POLYGON |
Возвращаемое значение
Возвращает геометрический объект типа Polygon, который хранится в памяти во внутреннем формате пространственных данных Doris и может напрямую передаваться в качестве параметра другим пространственным функциям (например, ST_AREA, ST_CONTAINS и т. д.) для выполнения вычислений.
- Возвращает NULL, если входная строка WKT некорректна (например, содержит незамкнутое кольцо или синтаксическую ошибку).
- Возвращает NULL, если входное значение
равно NULL или является пустой строкой.
Пример
Простой многоугольник
SELECT ST_AsText(ST_Polygon("POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))"));
+------------------------------------------------------------------+
| st_astext(st_polygon('POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))')) |
+------------------------------------------------------------------+
| POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0)) |
+------------------------------------------------------------------+
Самопересекающийся многоугольник (недопустимый)
mysql> select st_polygon('POLYGON ((0 0, 1 1, 0 1, 1 0, 0 0))');
+---------------------------------------------------+
| st_polygon('POLYGON ((0 0, 1 1, 0 1, 1 0, 0 0))') |
+---------------------------------------------------+
| NULL |
+---------------------------------------------------+
Некорректный WKT (незамкнутое кольцо)
mysql> SELECT ST_Polygon("POLYGON ((0 0, 10 0, 10 10, 0 10))");
+--------------------------------------------------+
| ST_Polygon("POLYGON ((0 0, 10 0, 10 10, 0 10))") |
+--------------------------------------------------+
| NULL |
+--------------------------------------------------+
Некорректный WKT (синтаксическая ошибка)
mysql> SELECT ST_Polygon("POLYGON (0 0, 10 0, 10 10, 0 10, 0 0)");
+-----------------------------------------------------+
| ST_Polygon("POLYGON (0 0, 10 0, 10 10, 0 10, 0 0)") |
+-----------------------------------------------------+
| NULL |
+-----------------------------------------------------+
Входное значение NULL
mysql> SELECT ST_Polygon(NULL);
+------------------+
| ST_Polygon(NULL) |
+------------------+
| NULL |
+------------------+