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

ST_LINEFROMTEXT

Описание​

Преобразует строку WKT (Well Known Text) в представление объекта Line в памяти

Псевдоним​

  • ST_LINESTRINGFROMTEXT

Синтаксис​

ST_LINEFROMTEXT( <wkt>)

Параметры​

ПараметрыОписание
<wkt>Строка WKT, соответствующая типу LINESTRING, в формате:
"LINESTRING (x1 y1, x2 y2)"
Здесь (x1 y1), (x2 y2) обозначают координаты вершин отрезка. Значения координат задаются числами (целыми или десятичными).

Возвращаемое значение​

Возвращает геометрический объект типа Line, который хранится в памяти во внутреннем формате пространственных данных Doris. Его можно напрямую передавать в качестве параметра другим пространственным функциям (например, ST_LENGTH, ST_INTERSECTS и т. д.) для выполнения вычислений.

  • Возвращает NULL, если входная строка WKT некорректна (например, содержит менее 2 вершин, синтаксические ошибки, нечисловые координаты и т. д.).
  • Возвращает NULL, если имеет значение NULL или является пустой строкой.

Пример​

Корректный объект типа LINE

mysql> SELECT ST_AsText(ST_LineFromText("LINESTRING (1 1, 2 2)"));
+-----------------------------------------------------+
| ST_AsText(ST_LineFromText("LINESTRING (1 1, 2 2)")) |
+-----------------------------------------------------+
| LINESTRING (1 1, 2 2) |
+-----------------------------------------------------+

Некорректный WKT (недостаточно вершин)

mysql> SELECT ST_LineFromText("LINESTRING (1 1)");
+-------------------------------------+
| ST_LineFromText("LINESTRING (1 1)") |
+-------------------------------------+
| NULL |
+-------------------------------------+

Некорректный WKT (синтаксическая ошибка)

mysql> SELECT ST_LineFromText("LINESTRING (1 1, 2 2");
+-----------------------------------------+
| ST_LineFromText("LINESTRING (1 1, 2 2") |
+-----------------------------------------+
| NULL |
+-----------------------------------------+

LineString с несколькими вершинами

mysql> SELECT ST_AsText(ST_LineFromText('LINESTRING (1 1, 2 2)'));
+-----------------------------------------------------+
| ST_AsText(ST_LineFromText('LINESTRING (1 1, 2 2)')) |
+-----------------------------------------------------+
| LINESTRING (1 1, 2 2) |
+-----------------------------------------------------+

Входное значение NULL

mysql> SELECT ST_LineFromText(NULL);
+-----------------------+
| ST_LineFromText(NULL) |
+-----------------------+
| NULL |
+-----------------------+