ST_Area

Definición

ST_Area devuelve el área de un polígono o multipolígono.

Sintaxis

Oracle y 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)

Tipo de devolución

Precisión doble

Ejemplo

El ingeniero de la ciudad necesita una lista de áreas de construcción. Para crear la lista, un técnico SIG selecciona el Id. de la construcción y el área de cada huella del edificio.

Las huellas de los edificios se almacenan en la tabla bfp.

Para cumplir con la solicitud del ingeniero de la ciudad, el técnico selecciona la clave única, el building_id y el área de cada huella de edificio desde la tabla 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

Temas relacionados

5/10/2014