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

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

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) MultiPolygon в тип Polygon.

Пример

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

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

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

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

Polygon

readWKTPoint

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTLineString

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTMultiLineString

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTRing

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

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

Пример

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

Два полигона

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

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.