geom字段的面积是多少



我想检查几何体值的区域。

几何体值为POLYGONPOINTMULTI POLYGON。字段的类型为geometry

我检查geom字段的srid:

select st_srid(geometry) 
from my_table

我得到srid=32636。

我在这里检查过:https://epsg.io/32636单位似乎是米。

现在我想得到每个值的面积(以米为单位(:

select st_area(geometry)
from my_table

我得到了非常小的值(0.0002,或0.000097,或0.33,…(

我想确定:

  • 这些值是指平方米吗
  • 那么这些数值小于1平方米

由于SRS单位为米,ST_Area将返回以平方米为单位的面积。以下示例使用具有不同单位的SRS计算多边形的面积:

WITH j (geom) AS (
VALUES ('SRID=32636;
POLYGON((-1883435.029648588 6673769.700215263,-1883415.1158478875 6673776.142528819,-1883411.8478185558 6673765.073005969,-1883431.7724919873 6673758.967942359,-1883435.029648588 6673769.700215263))'::GEOMETRY)) 
SELECT 
ST_Area(geom) AS sqm,
ST_Area(
ST_Transform(geom,2249)) AS sqft 
FROM j;
sqm        |       sqft        
-------------------+-------------------
237.6060612927441 | 2341.135411173445
  • EPSG 32636:单位为米(椭球WGS84(
  • EPSG 2249:单位为英尺(椭球GRS1980(

回答您的问题:

这些值是否意味着平方米(m^2(?

是。

那么这些值是否小于1平方米?

是。我很好奇你的几何图形是关于什么的。也许你混淆了不同的SRS?

不相关注意:具有相同单元的SRS的空间操作可能仍然会产生不同的结果,因为它们也可能使用不同的ellipsoids。以下示例将使用SRS计算相同几何形状的面积,SRS以米为单位,但使用不同的椭球体。注意结果的差异:

WITH j (geom) AS (
VALUES ('SRID=32636;
POLYGON((-1883435.029648588 6673769.700215263,-1883415.1158478875 6673776.142528819,-1883411.8478185558 6673765.073005969,-1883431.7724919873 6673758.967942359,-1883435.029648588 6673769.700215263))'::GEOMETRY)) 
SELECT 
ST_Area(geom) AS sqm_32636,
ST_Area(
ST_Transform(geom,26986)) AS sqm_26986
FROM j;

sqm_32636     |     sqm_26986      
-------------------+--------------------
237.6060612927441 | 217.49946674261872
  • EPSG 32636:单位为米(椭球WGS84(
  • EPSG 26986:单位为米(椭球GRS1980(

。。但如果你坚持使用相同的椭球体和单位,数学计算更有意义:

WITH j (geom) AS (
VALUES ('SRID=32636;
POLYGON((-1883435.029648588 6673769.700215263,-1883415.1158478875 6673776.142528819,-1883411.8478185558 6673765.073005969,-1883431.7724919873 6673758.967942359,-1883435.029648588 6673769.700215263))'::GEOMETRY)) 
SELECT 
ST_Area(
ST_Transform(geom,2249)) AS sqft_2249,
ST_Area(
ST_Transform(geom,2249)) * 0.3048 ^ 2 AS sqm_2249, -- manually converted from sqm to sqft
ST_Area(
ST_Transform(geom,26986)) AS sqm_26986
FROM j;
sqft_2249     |      sqm_2249      |     sqm_26986      
-------------------+--------------------+--------------------
2341.135411173445 | 217.49859674966302 | 217.49946674261872

演示:db<>fiddle

最新更新