Функции для работы с многоугольниками
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) Polygon в тип 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) геометрии LineString и возвращает его в внутреннем формате ClickHouse.
Синтаксис
Аргументы
wkt_string
: Вводная строка WKT, представляющая геометрию LineString.
Возвращаемое значение
Функция возвращает внутреннее представление ClickHouse геометрии LineString.
Пример
readWKTMultiLineString
Анализирует представление Well-Known Text (WKT) геометрии MultiLineString и возвращает его в внутреннем формате ClickHouse.
Синтаксис
Аргументы
wkt_string
: Вводная строка WKT, представляющая геометрию MultiLineString.
Возвращаемое значение
Функция возвращает внутреннее представление ClickHouse геометрии MultiLineString.
Пример
readWKTRing
Анализирует представление Well-Known Text (WKT) геометрии Polygon и возвращает кольцо (замкнутую линию) в внутреннем формате 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
Вычисляет минимальное расстояние между двумя точками, где одна точка принадлежит первому многоугольнику, а вторая — другому многоугольнику. Слово "сферический" означает, что координаты интерпретируются как координаты на чистой и идеальной сфере, что не соответствует Земле. Использование этой системы координат ускоряет выполнение, но, конечно, не точно.
Пример
Входные параметры
Два многоугольника
Возвращаемое значение
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.