Функции для работы с полигонами
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) многоугольник в тип многоугольника.
Пример
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
Возвращаемое значение
Многоугольник
readWKTPolygon
Преобразует WKT (Well Known Text) многоугольник в тип полигона.
Пример
type | output |
---|---|
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.