Попробуйте ST_Area
, например,
WITH j AS (
SELECT
'POLYGON((7.23 49.95,10.04 52.91,11.62 49.89,7.23 49.95))'::geometry AS poly)
SELECT ST_Area(poly) FROM j;
st_area
-------------------
6.581499999999988
(1 Zeile)
Использование geometry
параметров it ..
Возвращает область многоугольной геометрии. Для типов геометрии вычисляется двумерная декартова (плоская) область с единицами, указанными в SRID
и использующими geography
..
Для типов географии по умолчанию область определяется на сфероиде с единицами измерения в квадратных метрах.
WITH j AS (
SELECT
'POLYGON((7.23 49.95,10.04 52.91,11.62 49.89,7.23 49.95))'::geography AS poly)
SELECT ST_Area(poly) FROM j;
st_area
-------------------
52245336562.55078
(1 Zeile)
РЕДАКТИРОВАНИЕ : Для создания многоугольника на основе трех точек используйте ST_MakePolygon и ST_MakeLine (см. комментарии):
WITH j (p1,p2,p3) AS (
VALUES ('POINT(7.23 49.95)','POINT(10.04 52.91)','POINT(11.62 49.89)'))
SELECT
ST_AsText(ST_MakePolygon(ST_MakeLine(ARRAY[p1, p2, p3, p1])),2)
FROM j;
st_astext
----------------------------------------------------------
POLYGON((7.23 49.95,10.04 52.91,11.62 49.89,7.23 49.95))
(1 Zeile)