Функции для работы с многоугольниками
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.
Пример
type | output |
---|---|
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.
Пример
type | output |
---|---|
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.