ST_Area — 傳回多邊形幾何的面積。
float ST_Area(
geometry g1)
;
float ST_Area(
geography geog, boolean use_spheroid = true)
;
傳回多邊形幾何的面積。對於幾何類型,會計算二維笛卡爾(平面)面積,單位由 SRID 指定。對於地理類型,預設情況下,面積是在球體上計算,單位為平方公尺。若要使用較快但較不精確的球面模型計算面積,請使用 ST_Area(geog,false)
。
增強功能:2.0.0 - 引入了對二維多面體表面的支援。
增強功能:2.2.0 - 使用 GeographicLib 在球體上進行測量,以提高準確性和穩健性。需要 PROJ >= 4.9.0 才能利用新功能。
變更:3.0.0 - 不再依賴 SFCGAL。
此方法實作了 OGC Simple Features Implementation Specification for SQL 1.1。
此方法實作了 SQL/MM 規範。SQL-MM 3: 8.1.2, 9.5.3
此函數支援多面體表面。
![]() |
|
對於多面體表面,僅支援 2D 多面體表面(非 2.5D)。對於 2.5D,可能會給出非零答案,但僅適用於完全位於 XY 平面中的面。 |
傳回麻薩諸塞州土地的面積(以平方英尺為單位),並乘以轉換值以取得平方公尺。請注意,此處為平方英尺,因為 EPSG:2249 是麻薩諸塞州平面英尺
select ST_Area(geom) sqft, ST_Area(geom) * 0.3048 ^ 2 sqm from ( select 'SRID=2249;POLYGON((743238 2967416,743238 2967450, 743265 2967450,743265.625 2967416,743238 2967416))' :: geometry geom ) subquery; ┌─────────┬─────────────┐ │ sqft │ sqm │ ├─────────┼─────────────┤ │ 928.625 │ 86.27208552 │ └─────────┴─────────────┘
傳回平方英尺的面積,並轉換為麻薩諸塞州平面公尺 (EPSG:26986) 以取得平方公尺。請注意,此處為平方英尺,因為 2249 是麻薩諸塞州平面英尺,而轉換後的面積單位為平方公尺,因為 EPSG:26986 是麻薩諸塞州平面公尺
select ST_Area(geom) sqft, ST_Area(ST_Transform(geom, 26986)) As sqm from ( select 'SRID=2249;POLYGON((743238 2967416,743238 2967450, 743265 2967450,743265.625 2967416,743238 2967416))' :: geometry geom ) subquery; ┌─────────┬─────────────────┐ │ sqft │ sqm │ ├─────────┼─────────────────┤ │ 928.625 │ 86.272430607008 │ └─────────┴─────────────────┘
使用地理資料類型傳回平方英尺和平方公尺的面積。請注意,我們將幾何圖形轉換為地理圖形(在執行此操作之前,請確保您的幾何圖形採用 WGS 84 經緯度 4326)。地理圖形一律以公尺為單位測量。這只是為了示範比較。通常,您的表格會以地理資料類型儲存。
select ST_Area(geog) / 0.3048 ^ 2 sqft_spheroid, ST_Area(geog, false) / 0.3048 ^ 2 sqft_sphere, ST_Area(geog) sqm_spheroid from ( select ST_Transform( 'SRID=2249;POLYGON((743238 2967416,743238 2967450,743265 2967450,743265.625 2967416,743238 2967416))'::geometry, 4326 ) :: geography geog ) as subquery; ┌──────────────────┬──────────────────┬──────────────────┐ │ sqft_spheroid │ sqft_sphere │ sqm_spheroid │ ├──────────────────┼──────────────────┼──────────────────┤ │ 928.684405784452 │ 927.049336105925 │ 86.2776044979692 │ └──────────────────┴──────────────────┴──────────────────┘
如果您的資料已經是地理圖形
select ST_Area(geog) / 0.3048 ^ 2 sqft, ST_Area(the_geog) sqm from somegeogtable;