Перейти к содержимому
Последнее обновление

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 |
+------------------+