如何在PostgreSQL / PostGIS中获取3点三角形的面积?



我想用QGIS或PostgreSQL/PostGIS计算一个有3个点的三角形的面积。这些点保存在几何列中。我不知道该怎么做...

尝试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参数它..

返回多边形几何图形的面积。对于几何类型 2D 计算笛卡尔(平面(面积,单位由 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)