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