Name

ST_Area — Returnerar arean för en polygonal geometri.

Synopsis

float ST_Area(geometry g1);

float ST_Area(geography geog, boolean use_spheroid = true);

Beskrivning

Returnerar arean för en polygonal geometri. För geometrityper beräknas en 2D kartesisk (plan) area, med enheter som anges av SRID. För geograftyper bestäms arean som standard på en sfäroid med enheter i kvadratmeter. Om du vill beräkna arean med den snabbare men mindre exakta sfäriska modellen använder du ST_Area(geog,false)..

Förbättrad: 2.0.0 - stöd för 2D polyhedrala ytor infördes.

Förbättrad: 2.2.0 - mätning på sfäroid utförd med GeographicLib för förbättrad noggrannhet och robusthet. Kräver PROJ >= 4.9.0 för att dra nytta av den nya funktionen.

Ändrad: 3.0.0 - är inte längre beroende av SFCGAL.

Denna metod implementerar OGC:s implementeringsspecifikation för enkla funktioner för SQL 1.1.

Denna metod implementerar SQL/MM-specifikationen. SQL-MM 3: 8.1.2, 9.5.3

Denna funktion stöder polyedriska ytor.

[Note]

För polyedriska ytor stöds endast 2D-polyedriska ytor (inte 2,5D). För 2,5D kan svaret bli något annat än noll, men bara för de ytor som ligger helt i XY-planet.

Exempel

Returnera yta i kvadratfot för en tomt i Massachusetts och multiplicera med omvandling för att få kvadratmeter. Observera att detta är i kvadratfot eftersom EPSG:2249 är Massachusetts State Plane Feet

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 │
└─────────┴─────────────┘

Returnera area kvadratfot och transformera till Massachusetts state plane meters (EPSG:26986) för att få kvadratmeter. Observera att detta är i kvadratfot eftersom 2249 är Massachusetts State Plane Feet och den transformerade arean är i kvadratmeter eftersom EPSG:26986 är state plane Massachusetts meters

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 │
└─────────┴─────────────────┘

Returnera area kvadratfot och kvadratmeter med hjälp av datatypen geography. Observera att vi omvandlar vår geometri till geografi (innan du kan göra det måste du se till att din geometri är i WGS 84 long lat 4326). Geografi mäter alltid i meter. Detta är bara för demonstration för att jämföra. Normalt kommer din tabell redan att lagras i datatypen Geography.

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 │
└──────────────────┴──────────────────┴──────────────────┘

Om dina data redan finns i geografin:

select ST_Area(geog) / 0.3048 ^ 2 sqft,
    ST_Area(the_geog) sqm
from somegeogtable;