ST_Area — ポリゴンまたはマルチポリゴンの場合にはサーフェスの面積を返します。ジオメトリ型の面積はSRIDに基づく単位です。ジオグラフィ型の面積は曲面上で計算され、単位は平方メートルです。
float ST_Area(geometry g1);
float ST_Area(geography geog, boolean use_spheroid=true);
ポリゴンまたはマルチポリゴンの場合にはサーフェスの面積を返します。ST_SurfaceまたはST_MultiSurface値の面積計測を返します。ジオメトリ型の面積はSRIDに基づく単位です。ジオグラフィ型の面積は平方メートルで、デフォルトでは回転楕円体についての計測です。計算速度が速い反面精度が落ちる球面での計測を行うにはST_Area(geog,false)とします。
Enhanced: 2.0.0 - 2次元多面体サーフェス対応が導入されました。
Enhanced: 2.2.0 - measurement on spheroid performed with GeographicLib for improved accuracy and robustness. Requires Proj >= 4.9.0 to take advantage of the new feature.
This method implements the OpenGIS Simple Features
Implementation Specification for SQL 1.1.
This method implements the SQL/MM specification. SQL-MM 3: 8.1.2, 9.5.3
This function supports Polyhedral surfaces.
![]() | |
多面体サーフェスについて、2次元多面体サーフェスのみ対応します (2.5次元は対応しません)。2.5次元について、0でない答が与えられるかも知れませんが、完全にXY平面に付いているサーフェスのみです。 |
This method is also provided by SFCGAL backend.
マサチューセッツのプロットから平方フィートの面積を返すものと、乗算で平方フィートから平方メートルに変換するものです。EPSG:2249はマサチューセッツ州フィート平面であるので、平方フィートで面積が出ることに注意して下さい。
SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm
FROM (SELECT
ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,
743265 2967450,743265.625 2967416,743238 2967416))',2249) ) As foo(the_geom);
sqft | sqm
---------+-------------
928.625 | 86.27208552
平方フィートの面積を返すものと、マサチューセッツ州メートル平面 (EPSG:26986)に変換して平方メートルを得るものです。EPSG:2249はマサチューセッツ州フィート平面であり、EPSG:26986はマサチューセッツ州メートル平面であることに注意して下さい。
SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As sqm
FROM (SELECT
ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,
743265 2967450,743265.625 2967416,743238 2967416))',2249) ) As foo(the_geom);
sqft | sqm
---------+------------------
928.625 | 86.2724304199219
ジオグラフィ型を使って平方フィートと平方メートルを返すものです。 ジオメトリをジオグラフィに変換することに注意して下さい (変換に先立ってジオメトリがWGS 84緯度経度のEPSG:4326であることを確認します)。ジオグラフィは常にメートルで計測されます。これは比較のためのデモンストレーションです。通常は、ジオグラフィ型が既に格納されているものです。
SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid, ST_Area(the_geog,false)/POWER(0.3048,2) As sqft_sphere, ST_Area(the_geog) As sqm_spheroid
FROM (SELECT
geography(
ST_Transform(
ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,743265 2967450,743265.625 2967416,743238 2967416))',
2249
) ,4326
)
)
) As foo(the_geog);
sqft_spheroid | sqft_sphere | sqm_spheroid
------------------+------------------+------------------
928.684403538925 | 927.049336105925 | 86.2776042893529
-- データが既にジオグラフィ型である場合
SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft, ST_Area(the_geog) As sqm
FROM somegeogtable;