Geometry
Функции Geometry позволяют вычислять периметр и площадь для геометрических типов, таких как POLYGON, LINESTRING, MULTIPOLYGON, MULTILINESTRING, RING и POINT. Используйте геометрические объекты в типе Geometry. Если входное значение — NULL, все перечисленные ниже функции вернут 0.
perimeterCartesian
Вычисляет периметр заданного объекта Geometry в декартовой (плоской) системе координат.
Синтаксис
perimeterCartesian(geom)Аргументы
geom— объект типа Geometry. Geometry.
Возвращаемые значения
- Число — периметр объекта в единицах системы координат. Float64.
Пример
CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory();
INSERT INTO geo_dst SELECT readWKT('POLYGON((0 0,1 0,1 1,0 1,0 0))');
SELECT perimeterCartesian(geom) FROM geo_dst;┌─perimeterCartesian(geom)─┐
│ 4.0 │
└──────────────────────────┘areaCartesian
Вычисляет площадь указанного объекта Geometry в декартовой системе координат.
Синтаксис
areaCartesian(geom)Аргументы
geom— объект типа Geometry. Geometry.
Возвращаемые значения
- Число — площадь объекта в единицах системы координат. Float64.
Пример
CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory();
INSERT INTO geo_dst SELECT readWKT('POLYGON((0 0,1 0,1 1,0 1,0 0))');
SELECT areaCartesian(geom) FROM geo_dst;┌─areaCartesian(geom)─┐
│ -1 │
└─────────────────────┘perimeterSpherical
Вычисляет периметр объекта Geometry на сфере.
Синтаксис
perimeterSpherical(geom)Аргументы
geom— объект типа Geometry. Geometry.
Возвращаемые значения
- Число — периметр. Float64.
Пример
CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory();
INSERT INTO geo_dst SELECT readWKT('LINESTRING(0 0,1 0,1 1,0 1,0 0)');
SELECT perimeterSpherical(geom) FROM geo_dst;┌─perimeterSpherical(geom)─┐
│ 0 │
└──────────────────────────┘areaSpherical
Вычисляет площадь объекта типа Geometry на поверхности сферы.
Синтаксис
areaSpherical(geom)Аргументы
geom— Geometry. Geometry.
Возвращаемые значения
- Число — площадь. Float64.
Пример
CREATE TABLE IF NOT EXISTS geo_dst (geom Geometry) ENGINE = Memory();
INSERT INTO geo_dst SELECT readWKT('POLYGON((0 0,1 0,1 1,0 1,0 0))');
SELECT areaSpherical(geom) FROM geo_dst;┌─areaSpherical(geom)────┐
│ -0.0003046096848622019 │
└────────────────────────┘