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

Функции для работы с многоугольниками

WKT

Возвращает геометрический объект WKT (Well Known Text) из различных Геоданных. Поддерживаемые объекты WKT:

  • POINT
  • POLYGON
  • MULTIPOLYGON
  • LINESTRING
  • MULTILINESTRING

Синтаксис

Параметры

geo_data может быть одним из следующих Геоданных или их примитивных типов:

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

  • WKT геометрический объект POINT возвращается для Point.
  • WKT геометрический объект POLYGON возвращается для Polygon.
  • WKT геометрический объект MULTIPOLYGON возвращается для MultiPolygon.
  • WKT геометрический объект LINESTRING возвращается для LineString.
  • WKT геометрический объект MULTILINESTRING возвращается для MultiLineString.

Примеры

POINT из кортежа:

POLYGON из массива кортежей или массива массивов кортежей:

MULTIPOLYGON из массива многомерных массивов кортежей:

readWKTMultiPolygon

Преобразует WKT (Well Known Text) MultiPolygon в тип MultiPolygon.

Пример

typeoutput
MultiPolygon[[[(2,0),(10,0),(10,10),(0,10),(2,0)],[(4,4),(5,4),(5,5),(4,5),(4,4)]],[[(-10,-10),(-10,-9),(-9,10),(-10,-10)]]]

Входные параметры

Строка, начинающаяся с MULTIPOLYGON.

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

MultiPolygon

readWKTPolygon

Преобразует WKT (Well Known Text) Polygon в тип Polygon.

Пример

typeoutput
Polygon[[(2,0),(10,0),(10,10),(0,10),(2,0)]]

Входные параметры

Строка, начинающаяся с POLYGON.

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

Polygon

readWKTPoint

Функция readWKTPoint в ClickHouse анализирует представление Well-Known Text (WKT) геометрии точки и возвращает точку в внутреннем формате ClickHouse.

Синтаксис

Аргументы

  • wkt_string: Вводная строка WKT, представляющая геометрию точки.

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

Функция возвращает внутреннее представление ClickHouse геометрии точки.

Пример

readWKTLineString

Анализирует представление Well-Known Text (WKT) геометрии LineString и возвращает его в внутреннем формате ClickHouse.

Синтаксис

Аргументы

  • wkt_string: Вводная строка WKT, представляющая геометрию LineString.

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

Функция возвращает внутреннее представление ClickHouse геометрии LineString.

Пример

readWKTMultiLineString

Анализирует представление Well-Known Text (WKT) геометрии MultiLineString и возвращает его в внутреннем формате ClickHouse.

Синтаксис

Аргументы

  • wkt_string: Вводная строка WKT, представляющая геометрию MultiLineString.

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

Функция возвращает внутреннее представление ClickHouse геометрии MultiLineString.

Пример

readWKTRing

Анализирует представление Well-Known Text (WKT) геометрии Polygon и возвращает кольцо (замкнутую линию) в внутреннем формате ClickHouse.

Синтаксис

Аргументы

  • wkt_string: Вводная строка WKT, представляющая геометрию Polygon.

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

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

Пример

polygonsWithinSpherical

Возвращает true или false в зависимости от того, полностью ли один многоугольник находится внутри другого многоугольника. Ссылка https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/within/within_2.html

Пример

Входные параметры

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

UInt8, 0 для false, 1 для true

polygonsDistanceSpherical

Вычисляет минимальное расстояние между двумя точками, где одна точка принадлежит первому многоугольнику, а вторая — другому многоугольнику. Слово "сферический" означает, что координаты интерпретируются как координаты на чистой и идеальной сфере, что не соответствует Земле. Использование этой системы координат ускоряет выполнение, но, конечно, не точно.

Пример

Входные параметры

Два многоугольника

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

Float64

polygonsDistanceCartesian

Вычисляет расстояние между двумя многоугольниками.

Пример

Входные параметры

Два многоугольника

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

Float64

polygonsEqualsCartesian

Возвращает true, если два многоугольника равны.

Пример

Входные параметры

Два многоугольника

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

UInt8, 0 для false, 1 для true

polygonsSymDifferenceSpherical

Вычисляет пространственную симметрическую разность (XOR) между двумя многоугольниками.

Пример

Входные параметры

Многоугольники

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

MultiPolygon

polygonsSymDifferenceCartesian

То же самое, что и polygonsSymDifferenceSpherical, но координаты находятся в декартовой системе координат; которая ближе к модели реальной Земли.

Пример

Входные параметры

Многоугольники

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

MultiPolygon

polygonsIntersectionSpherical

Вычисляет пересечение (AND) между многоугольниками, координаты сферические.

Пример

Входные параметры

Многоугольники

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

MultiPolygon

polygonsWithinCartesian

Возвращает true, если второй многоугольник находится внутри первого многоугольника.

Пример

Входные параметры

Два многоугольника

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

UInt8, 0 для false, 1 для true

polygonConvexHullCartesian

Вычисляет выпуклую оболочку. Ссылка

Координаты находятся в декартовой системе координат.

Пример

Входные параметры

MultiPolygon

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

Polygon

polygonAreaSpherical

Вычисляет площадь многоугольника.

Пример

Входные параметры

Polygon

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

Float

polygonsUnionSpherical

Вычисляет объединение (OR).

Пример

Входные параметры

Многоугольники

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

MultiPolygon

polygonPerimeterSpherical

Вычисляет периметр многоугольника.

Пример

Многоугольник, представляющий Зимбабве

Это многоугольник, представляющий Зимбабве:

Использование функции polygonPerimeterSpherical

Входные параметры

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

polygonsIntersectionCartesian

Вычисляет пересечение полигонов.

Пример

Входные параметры

Многоугольники

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

MultiPolygon

polygonAreaCartesian

Вычисляет площадь полигона

Пример

Входные параметры

Полигоны

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

Float64

polygonPerimeterCartesian

Вычисляет периметр полигона.

Пример

Входные параметры

Полигоны

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

Float64

polygonsUnionCartesian

Вычисляет объединение полигонов.

Пример

Входные параметры

Полигоны

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

MultiPolygon

Для получения дополнительной информации о геометрических системах смотрите эту презентацию о библиотеке Boost, на которой основывается ClickHouse.