кодесурса
«MySQL

PostgreSQL: геометрические функции и операторы

script1adsense2code
script1adsense3code

Вступление

В PostgreSQL доступны различные геометрические функции, а также операторы. Геометрические типы point, box, lseg, line, path, polygon и circle имеют большой набор собственных вспомогательных функций и операторов, показанных в следующем разделе:

Геометрические операторы

оператор Описание пример
+ Перевод поле '((0,0), (1,1)) "+ точка" (2.0,0)'
- Перевод поле '((0,0), (1,1))' - точка '(2.0,0)'
* Масштабирование / поворот поле '((0,0), (1,1))' * точка '(2.0,0)'
/ Масштабирование / поворот поле '((0,0), (2,2)) "/ точка" (2.0,0) "
# Точка или коробка пересечения '((1, -1), (- 1,1))' # '((1,1), (- 1, -1))'
# Количество точек на пути или полигоне # '((1,0), (0,1), (- 1,0))'
@ [электронная почта защищена] Длина или окружность @ [электронная почта защищена] путь '((0,0), (1,0))'
@@ Центр @@ circle '((0,0), 10)'
## Ближайшая точка к первому операнду второго операнда точка '(0,0)' ## lseg '((2,0), (0,2))'
<-> Дистанция между кружок '((0,0), 1)' <-> кружок "((5,0), 1) '
&& Перекрытия? (Одна общая черта делает это правдой.) поле '((0,0), (1,1))' && поле '((0,0), (2,2))'
<< Строго осталось от? кружок '((0,0), 1)' << окружность '((5,0), 1)'
>> Это строго право? кружок '((5,0), 1)' >> кружок '((0,0), 1)'
& < Не распространяется на право? поле '((0,0), (1,1))' & <поле '((0,0), (2,2))'
&> Не распространяется влево от? поле '((0,0), (3,3))' &> поле '((0,0), (2,2))'
<< | Строго ниже? поле '((0,0), (3,3))' << | поле '((3,4), (5,5))'
| >> Строго выше? коробка '((3,4), (5,5))' | >> коробка '((0,0), (3,3))'
И <| Не распространяется выше? поле '((0,0), (1,1))' & <| поле '((0,0), (2,2))'
| &> Не распространяется ниже? коробка '((0,0), (3,3))' | &> коробка '((0,0), (2,2))'
<^ Ниже (позволяет трогать)? кружок '((0,0), 1)' <^ кружок '((0,5), 1)'
> ^ Выше (позволяет трогать)? кружок '((0,5), 1)'> ^ кружок '((0,0), 1)'
? # Пересекает? lseg '((-1,0), (1,0))'? # box '((-2, -2), (2,2))'
? - Горизонтальный? ? - lseg '((-1,0), (1,0))'
? - Выровнены по горизонтали? точка '(1,0)'? - точка '(0,0)'
? | Вертикально? ? | lseg '((-1,0), (1,0))'
? | Выровнены по вертикали? точка '(0,1)'? | точка '(0,0)'
? - | Перпендикулярно? lseg '((0,0), (0,1))'? - | lseg '((0,0), (1,0))'
? || Параллельны? lseg '((-1,0), (1,0))'? || lseg '((-1,2), (1,2))'
@> Содержит? кружок '((0,0), 2)' @> точка '(1,1)'
<@ Содержится в или на? точка '(1,1)' <@ окружность '((0,0), 2)'
~ = Такой же как? полигон '((0,0), (1,1))' ~ = полигон '((1,1), (0,0))'

Геометрические функции

область (объект)

Функция area () используется для создания области объекта.

Тип возврата: двойная точность

Пример:

Код:

SELECT area(box '((0,0),(2,3))');

Пример вывода:

 площадь
------
    6
(1 ряд)

Код:

SELECT area(box '((2,3),(-2,-3))');

Пример вывода:

 площадь
------
    24
(1 ряд)

Следующее утверждение вычисляет площадь круга.

Код:

SELECT area(circle '((0,0),5)');

Пример вывода:

 площадь
------------------
 +78,5398163397448
(1 ряд)

центр (объект)

Функция center () используется для создания центра объекта.

Тип возврата: точка

Пример:

Код:

SELECT center(box '((0,0),(3,4))');

Пример вывода:

 центр
---------
 (1.5,2)
(1 ряд)

Код:

SELECT center(circle '((2,3),8)');

Пример вывода:

 центр
--------
 (2,3)
(1 ряд)

диаметр (окружность)

Функция Diameter () используется для создания диаметра круга.

Тип возврата: двойная точность

Пример:

Код:

SELECT diameter(circle '((2,3),8)');

Пример вывода:

 диаметр
----------
       16
(1 ряд)

высота (коробка)

Функция height () используется для создания вертикального размера поля.

Тип возврата: двойная точность

Пример:

Код:

SELECT height(box '((2,3),(5,8))');

Пример вывода:

 рост
--------
      5
(1 ряд)

IsClosed (путь)

Функция isclosed () используется для проверки того, является ли конкретный путь близким или нет.

Тип возврата: логическое значение

Пример:

Код:

SELECT isclosed(path '((2,3),(1,1),(2,2))');

Пример вывода:

 закрыто
----------
 T
(1 ряд)

IsOpen (путь)

Функция isclosed () используется для проверки, открыт ли конкретный путь или нет.

Тип возврата: логическое значение

Пример:

Код:

SELECT isopen(path '((2,3),(1,1),(2,2))');

Пример вывода:

 открыт
--------
 е
(1 ряд)

длина (объект)

Функция length () используется для определения длины объекта.

Тип возврата: двойная точность

Пример:

Код:

SELECT length(path '((2,3),(5,5))');

Пример вывода:

 длина
------------------
 +7,21110255092798
(1 ряд)

NPOINTS (путь)

Функция npoints () используется для возврата количества точек пути.

Тип возврата: int

Пример:

Код:

SELECT npoints(path '[(1,1),(2,2),(3,3)]');

Пример вывода:

 NPOINTS
---------
       3
(1 ряд)	

NPOINTS (полигон)

Функция npoints () используется для возврата количества точек многоугольника, указанного в аргументе.

Тип возврата: int

Пример:

Код:

SELECT npoints(polygon '((1,1),(0,0),(2,3),(3,5))');

Пример вывода:

 NPOINTS
---------
       4
(1 ряд)

pclose (путь)

Функция pclose () используется для преобразования пути в close.

Тип возврата: путь

Пример:

Код:

SELECT pclose(path '((2,3),(1,1),(2,2))');

Пример вывода:

 pclose
---------------------
 ((2,3), (1,1), (2,2))
(1 ряд)

POPEN (путь)

Функция popen () используется для преобразования пути в открытый.

Тип возврата: путь

Пример:

Код:

SELECT popen(path '((2,3),(1,1),(2,2))');

Пример вывода:

 POPEN
---------------------
 [(2,3), (1,1), (2,2)]
(1 ряд)		

радиус (круг)

Функция radius () используется для получения радиуса круга.

Тип возврата: двойная точность

Пример:

Код:

SELECT radius(circle '((2,3),8)');

Пример вывода:

 радиус
--------
      8
(1 ряд)		

ширина (коробка)

Функция width () используется для получения горизонтального размера поля

Тип возврата: двойная точность

Пример:

Код:

SELECT width(box '((2,3),(5,8))');

Пример вывода:

 ширина
-------
     3
(1 ряд)	

Функции преобразования геометрических типов

функция Тип возврата Описание пример
коробка (круг) коробка круг к коробке коробка (кружок '((0,0), 2.0)')
коробка (точка, точка) коробка указывает на коробку коробка (точка '(0,0)', точка '(1,1)')
коробка (полигон) коробка полигон в коробку коробка (многоугольник '((0,0), (1,1), (2,0))')
круг (коробка) круг коробка в круг кружок (рамка '((0,0), (1,1))')
круг (точка, двойная точность) круг центр и радиус окружности окружность (точка '(0,0)', 2,0)
круг (многоугольник) круг многоугольник в круг круг (многоугольник '((0,0), (1,1), (2,0))')
LSEG (коробка) LSEG диагональ прямоугольника к отрезку lseg (поле '((-1,0), (1,0))')
lseg (точка, точка) LSEG указывает на отрезок lseg (точка '(-1,0)', точка '(1,0)')
Путь (полигон) дорожка полигон к пути путь (многоугольник '((0,0), (1,1), (2,0))')
точка (двойная точность, двойная точность) точка построить точку точка (23,4, -44,5)
точка (коробка) точка центр коробки точка (поле '((-1,0), (1,0))')
точка (круг) точка центр круга точка (кружок '((0,0), 2.0)')
точка (LSEG) точка центр отрезка точка (lseg '((-1,0), (1,0))')
точка (полигон) точка центр многоугольника точка (многоугольник '((0,0), (1,1), (2,0))')
многоугольник (коробка) многоугольник коробка к 4-х точечному многоугольнику полигон (поле '((0,0), (1,1))')
Многоугольник (круг) многоугольник окружность до 12-точечного многоугольника многоугольник (круг '((0,0), 2.0)')
многоугольник (npts, круг) многоугольник окружность до многоугольника точки npts многоугольник (12, круг '((0,0), 2,0)')
Многоугольник (путь) многоугольник путь к многоугольнику полигон (путь '((0,0), (1,1), (2,0))')

Предыдущая: Функции форматирования типов данных
Далее: Функции и операторы JSON

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code