Последнее обновление
ST_CIRCLE
Описание
Преобразует WKT (Well-Known Text) в круг на сферической поверхности Земли.
Синтаксис
ST_CIRCLE( <center_lng>, <center_lat>, <radius>)
Параметры
| Параметр | Описание |
|---|---|
<center_lng> | Долгота центра круга, тип DOUBLE, допустимый диапазон [-180, 180] |
<center_lat> | Широта центра круга, тип DOUBLE, допустимый диапазон [-90, 90] |
<radius> | Радиус круга в метрах, тип DOUBLE |
Возвращаемое значение
Возвращает круг на сферической поверхности Земли, имеющий тип GeoCircle. Его представление в формате WKT имеет вид CIRCLE ((<center_lng> <center_lat>),
Для ST_CIRCLE предусмотрены следующие особые случаи:
- Если любой входной параметр равен NULL, возвращает NULL.
- Если <center_lng> выходит за пределы диапазона [-180, 180] или <center_lat> выходит за пределы диапазона [-90, 90], возвращает NULL.
- Если
равен 0, возвращает особый круг, единственной точкой которого является его центр (представление в формате WKT: CIRCLE ((<center_lng> <center_lat>), 0)).
Пример
Базовое использование (обычный круг)
SELECT ST_AsText(ST_Circle(111, 64, 10000));
+--------------------------------------------+
| st_astext(st_circle(111.0, 64.0, 10000.0)) |
+--------------------------------------------+
| CIRCLE ((111 64), 10000) |
+--------------------------------------------+
Круг на экваторе (широта 0°)
mysql> SELECT ST_AsText(ST_Circle(0, 0, 5000));
+----------------------------------+
| ST_AsText(ST_Circle(0, 0, 5000)) |
+----------------------------------+
| CIRCLE ((0 0), 5000) |
+----------------------------------+
Круг с радиусом 0 (вырождается в точку)
mysql> SELECT ST_AsText(ST_Circle(120, 30, 0));
+----------------------------------+
| ST_AsText(ST_Circle(120, 30, 0)) |
+----------------------------------+
| CIRCLE ((120 30), 0) |
+----------------------------------+
Недопустимый параметр (долгота вне допустимого диапазона)
mysql> SELECT ST_AsText(ST_Circle(190, 30, 1000));
+-------------------------------------+
| ST_AsText(ST_Circle(190, 30, 1000)) |
+-------------------------------------+
| NULL |
+-------------------------------------+
Параметр NULL
mysql> SELECT ST_AsText(ST_Circle(NULL, 30, 1000));
+--------------------------------------+
| ST_AsText(ST_Circle(NULL, 30, 1000)) |
+--------------------------------------+
| NULL |
+--------------------------------------+