ST_Area

Définition

ST_Area retourne la surface d'un objet polygon ou multipolygon.

Syntaxe

Oracle et PostgreSQL

sde.st_area (polygon sde.st_geometry)
sde.st_area (multipolygon sde.st_geometry)

SQLite

st_area (polygon st_geometry)
st_area (polygon st_geometry, unit_name)

Type de retour

Double précision

Exemple

L'ingénieur municipal a besoin d'une liste des zones à bâtir. Pour créer cette liste, un technicien SIG sélectionne l'identifiant de bâtiment et la surface de chaque emprise de bâtiment.

Les emprises de bâtiments sont stockées dans la table bfp.

Pour répondre à la demande de l'ingénieur municipal, le technicien sélectionne la clé unique, l'identifiant building_id et la surface de chaque emprise de bâtiment de la table bfp.

Oracle

--Create and populate table.
CREATE TABLE bfp (
 building_id integer not null,
 footprint sde.st_geometry);

INSERT INTO BFP (building_id, footprint) VALUES (
 1, 
 sde.st_polygon ('polygon ((0 0, 0 10, 10 10, 10 0, 0 0))', 4326)
);

INSERT INTO BFP (building_id, footprint) VALUES (
 2, 
 sde.st_polygon ('polygon ((20 0, 30 20, 40 0, 20 0))', 4326)
);

INSERT INTO BFP (building_id, footprint) VALUES (
 3,
 sde.st_polygon ('polygon ((20 30, 25 35, 30 30, 20 30))', 4326)
);
--Get area of geometries.
SELECT building_id, sde.st_area (footprint) Area
 FROM BFP;

BUILDING_ID       Area

          1        100
          2        200
          3         25

PostgreSQL

--Create and populate table.
CREATE TABLE bfp (
 building_id serial,
 footprint sde.st_geometry);

INSERT INTO bfp (footprint) VALUES (
 sde.st_polygon ('polygon ((0 0, 0 10, 10 10, 10 0, 0 0))', 4326)
);

INSERT INTO bfp (footprint) VALUES (
 sde.st_polygon ('polygon ((20 0, 30 20, 40 0, 20 0))', 4326)
);

INSERT INTO bfp (footprint) VALUES (
 sde.st_polygon ('polygon ((20 30, 25 35, 30 30, 20 30))', 4326)
);
--Get area of geometries.
SELECT building_id, sde.st_area (footprint) 
 AS Area
 FROM bfp;

building_id       area

          1        100
          2        200
          3         25

SQLite

--Create table, add geometry column to it, and populate the table.
CREATE TABLE bfp (
 building_id integer primary key autoincrement not null
);

SELECT AddGeometryColumn(
 NULL,
 'bfp',
 'footprint',
 4326,
 'polygon',
 'xy',
 'null'
);

INSERT INTO bfp (footprint) VALUES (
 st_polygon ('polygon ((0 0, 0 10, 10 10, 10 0, 0 0))', 4326)
);

INSERT INTO bfp (footprint) VALUES (
 st_polygon ('polygon ((20 0, 30 20, 40 0, 20 0))', 4326)
);

INSERT INTO bfp (footprint) VALUES (
 st_polygon ('polygon ((20 30, 25 35, 30 30, 20 30))', 4326)
);
--Get area of geometries.
SELECT building_id, st_area (footprint) 
 AS "area"
 FROM bfp;

building_id       area

          1        100.0
          2        200.0
          3         25.0

Thèmes connexes

5/10/2014