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

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

WKT

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

  • POINT
  • POLYGON
  • MULTIPOLYGON
  • LINESTRING
  • MULTILINESTRING

Синтаксис

Параметры

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

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

  • WKT геометрический объект POINT возвращается для точки.
  • WKT геометрический объект POLYGON возвращается для многоугольника.
  • WKT геометрический объект MULTIPOLYGON возвращается для многогранника.
  • WKT геометрический объект LINESTRING возвращается для линейной строки.
  • WKT геометрический объект MULTILINESTRING возвращается для многолинейной строки.

Примеры

POINT из кортежа:

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

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

readWKTMultiPolygon

Преобразует WKT (Well Known Text) многогранник в тип 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.

Пример

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) геометрии линейной строки и возвращает его во внутреннем формате ClickHouse.

Синтаксис

Аргументы

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

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

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

Пример

readWKTMultiLineString

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTRing

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

Синтаксис

Аргументы

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

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

Функция возвращает внутреннее представление 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.