我想用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)