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

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

WKT

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

  • POINT
  • POLYGON
  • MULTIPOLYGON
  • LINESTRING
  • MULTILINESTRING

Синтаксис

Параметры

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

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

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

Примеры

TOЧКА из кортежа:

ПОЛИГОН из массива кортежей или массива массивов кортежей:

МНОГОУГОЛЬНИК из массива многомерных массивов кортежей:

readWKTMultiPolygon

Преобразует WKT (Well Known Text) многоугольник в тип многоугольника.

Пример

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

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

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

readWKTPolygon

Преобразует WKT (Well Known Text) многоугольник в тип полигона.

Пример

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

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

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

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

Полигон

readWKTPoint

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTLineString

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTMultiLineString

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTRing

Анализирует представление WKT (Well Known Text) геометрии полигона и возвращает кольцо (замкнутую линейную строку) во внутреннем формате 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) между двумя полигонами

Пример

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

Полигоны

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

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

polygonsSymDifferenceCartesian

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

Пример

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

Полигоны

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

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

polygonsIntersectionSpherical

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

Пример

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

Полигоны

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

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

polygonsWithinCartesian

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

Пример

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

Два полигона

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

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

polygonConvexHullCartesian

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

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

Пример

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

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

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

Полигон

polygonAreaSpherical

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

Пример

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

Полигон

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

Float

polygonsUnionSpherical

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

Пример

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

Полигоны

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

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

polygonPerimeterSpherical

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

Пример

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

Полигон

Запрос

Параметры входа

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

polygonsIntersectionCartesian

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

Пример

Параметры входа

Полигоны

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

MultiPolygon

polygonAreaCartesian

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

Пример

Параметры входа

Полигоны

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

Float64

polygonPerimeterCartesian

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

Пример

Параметры входа

Полигоны

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

Float64

polygonsUnionCartesian

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

Пример

Параметры входа

Полигоны

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

MultiPolygon

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