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