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

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

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 разбирает Well-Known Text (WKT) представление точечной геометрии и возвращает точку в внутреннем формате ClickHouse.

Синтаксис

Аргументы

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

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

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

Пример

readWKTLineString

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTMultiLineString

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

Синтаксис

Аргументы

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

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

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

Пример

readWKTRing

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

Синтаксис

Аргументы

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

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

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

Пример

polygonsWithinSpherical

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

Пример

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

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

UInt8, 0 для ложь, 1 для истина

polygonsDistanceSpherical

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

Пример

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

Два полигона

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

Float64

polygonsDistanceCartesian

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

Пример

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

Два полигона

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

Float64

polygonsEqualsCartesian

Возвращает истину, если два полигона равны

Пример

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

Два полигона

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

UInt8, 0 для ложь, 1 для истина

polygonsSymDifferenceSpherical

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

Пример

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

Полигоны

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

MultiPolygon

polygonsSymDifferenceCartesian

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

Пример

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

Полигоны

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

MultiPolygon

polygonsIntersectionSpherical

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

Пример

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

Полигоны

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

MultiPolygon

polygonsWithinCartesian

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

Пример

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

Два полигона

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

UInt8, 0 для ложь, 1 для истина

polygonConvexHullCartesian

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

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

Пример

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

MultiPolygon

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

Polygon

polygonAreaSpherical

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

Пример

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

Polygon

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

Float

polygonsUnionSpherical

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

Пример

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

Полигоны

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

MultiPolygon

polygonPerimeterSpherical

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

Пример

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

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

пример

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

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

polygonsIntersectionCartesian

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

Пример

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

Полигон

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

MultiPolygon

polygonAreaCartesian

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

Пример

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

Полигон

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

Float64

polygonPerimeterCartesian

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

Пример

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

Полигон

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

Float64

polygonsUnionCartesian

Вычисляет объединение многоугольников.

Пример

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

Полигон

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

MultiPolygon

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