geom字段的面积是多少?
What is the area of geom field?
我想检查几何值的面积。
几何值为POLYGON
或POINT
或MULTI 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,....)。
我想确定:
- 这些值是否表示平方米 (m^2)?
- 所以值小于 1 平方米?
由于您的 SRS 单位是米,ST_Area
将 return 面积以平方米为单位。以下示例使用具有不同单位的 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)
针对您的问题:
Does those values means square meter (m^2) ?
是的。
So the values are less than 1 square meter ?
是的。我很好奇你的几何学是关于什么的。也许您混淆了不同的 SRS?
不相关的注释:具有相同单位的 SRS 的空间操作可能仍会产生不同的结果,因为它们也可能使用不同的 ellipsoids
。下面的示例将使用以米为单位但不同椭球体的 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: 单位为米 (Ellipsoid 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
我想检查几何值的面积。
几何值为POLYGON
或POINT
或MULTI 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,....)。
我想确定:
- 这些值是否表示平方米 (m^2)?
- 所以值小于 1 平方米?
由于您的 SRS 单位是米,ST_Area
将 return 面积以平方米为单位。以下示例使用具有不同单位的 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)
针对您的问题:
Does those values means square meter (m^2) ?
是的。
So the values are less than 1 square meter ?
是的。我很好奇你的几何学是关于什么的。也许您混淆了不同的 SRS?
不相关的注释:具有相同单位的 SRS 的空间操作可能仍会产生不同的结果,因为它们也可能使用不同的 ellipsoids
。下面的示例将使用以米为单位但不同椭球体的 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: 单位为米 (Ellipsoid 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