ST_Geometry

Définition

La fonction ST_Geometry construit une géométrie à partir d'une représentation textuelle connue.

Lorsque vous créez des tables spatiales qui seront utilisées avec ArcGIS, nous vous recommandons de créer le supertype géométrie (par exemple ST_Geometry) plutôt que de spécifier un sous-type ST_Geometry, tel que ST_LineString.

Syntaxe

Oracle

  • Pour les chaînes de lignes, les polygones et les points

    sde.st_geometry (wkt clob, srid integer)

  • Pour les points optimisés (qui ne lancent pas un agent extproc et traitent donc la requête plus rapidement)

    sde.st_geometry (x, y, z, m, srid)

    Utilisez la construction de points optimisés lorsque vous procédez à des insertions par lots d'une grande quantité de données de points.

  • Pour les cercles paramétriques

    sde.st_geometry (x, y, z, m, radius, number_of_points, srid)

  • Pour les ellipses paramétriques

    sde.st_geometry (x, y, z, m, semi_major_axis, semi_minor_axis, angle, number_of_points, srid)

  • Pour les secteurs paramétriques

    sde.st_geometry (x, y, z, m, startangle, endangle, outerradius, innerradius, number_of_points, srid)

PostgreSQL

  • Pour les chaînes de lignes, les polygones et les points

    sde.st_geometry (wkt, srid integer)
    sde.st_geometry (esri_shape bytea, srid integer)

  • Pour les cercles paramétriques

    sde.st_geometry (x, y, z, m, radius, number_of_points, srid)

  • Pour les ellipses paramétriques

    sde.st_geometry (x, y, z, m, semi_major_axis, semi_minor_axis, angle, number_of_points, srid)

  • Pour les secteurs paramétriques

    sde.st_geometry (x, y, z, m, startangle, endangle, outerradius, innerradius, number_of_points, srid)

SQLite

  • Pour les chaînes de lignes, les polygones et les points

    st_geometry (text  WKT_string,int32 srid)

  • Pour les cercles paramétriques

    st_geometry (x, y, z, m, radius, number_of_points, srid)

  • Pour les ellipses paramétriques

    st_geometry (x, y, z, m, semi_major_axis, semi_minor_axis, angle_of_rotation, number_of_points, srid)

  • Pour les secteurs paramétriques

    st_geometry (x, y, z, m, start_angle, end_angle, outer_radius, inner_radius, number_of_points, srid)

Type de retour

Oracle et PostgreSQL

ST_Geometry

SQLite

Geometryblob

Exemples

Création et interrogation d'entités de points, de lignes de chaînes et de polygones

Ces exemples créent une table (geoms) et insèrent des valeurs de points, de lignes de chaînes et de polygones dans cette table.

Oracle

CREATE TABLE geoms (
 id integer,
 geometry sde.st_geometry
);
INSERT INTO GEOMS (id, geometry) VALUES (
 1901,
 sde.st_geometry ('point (1 2)', 4326)
);

--To insert the same point using optimized point construction:
INSERT INTO GEOMS (id, geometry) VALUES (
 1901,
 sde.st_geometry (1,2,null,null,4326)
);

INSERT INTO GEOMS (id, geometry) VALUES (
 1902,
 sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);

INSERT INTO GEOMS (id, geometry) VALUES (
 1903,
 sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);

PostgreSQL

CREATE TABLE geoms (
 id serial,
 geometry sde.st_geometry
);
INSERT INTO geoms (geometry) VALUES (
 sde.st_geometry ('point (1 2)', 4326)
);

INSERT INTO geoms (geometry) VALUES (
 sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);

INSERT INTO geoms (geometry) VALUES (
 sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);

SQLite

CREATE TABLE geoms (
 id integer primary key autoincrement not null
);

SELECT AddGeometryColumn (
 NULL,
 'geoms',
 'geometry',
 4326,
 'geometry',
 'xy',
 'null'
);
INSERT INTO geoms (geometry) VALUES (
 st_geometry ('point (1 2)', 4326)
);

INSERT INTO geoms (geometry) VALUES (
 st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);

INSERT INTO geoms (geometry) VALUES (
 st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);

Création et interrogation de cercles paramétriques

Créez une table de rayons, puis insérez des cercles dans cette table.

Oracle

CREATE TABLE radii (
 id integer,
 geometry sde.st_geometry
);
INSERT INTO RADII (id, geometry) VALUES (
 1904,
 sde.st_geometry (10,10,NULL,NULL,25,50,4326)
);

INSERT INTO RADII (id, geometry) VALUES (
 1905,
 sde.st_geometry (5,15,NULL,NULL,10,20,4326)
);

PostgreSQL

CREATE TABLE radii (
 id serial,
 geometry sde.st_geometry
);
INSERT INTO radii (geometry) VALUES (
 sde.st_geometry (10,10,NULL,NULL,25,50,4326)
);

INSERT INTO radii (geometry) VALUES (
 sde.st_geometry (5,15,NULL,20,10,30,4326)
);

SQLite

CREATE TABLE radii (
 id integer primary key autoincrement not null
);

SELECT AddGeometryColumn (
 NULL,
 'radii',
 'geometry',
 4326,
 'geometry',
 'xy',
 'null'
);
INSERT INTO radii (geometry) VALUES (
 st_geometry (10,10,NULL,NULL,25,50,4326)
);

INSERT INTO radii (geometry) VALUES (
 st_geometry (5,15,NULL,20,10,30,4326)
);

Création et interrogation d'ellipses paramétriques

Créez une table de pistes, puis insérez des ellipses dans cette table.

Oracle

CREATE TABLE track (
 id integer,
 geometry sde.st_geometry
);
INSERT INTO TRACK (id, geometry) VALUES (
 1907,
 sde.st_geometry (0,0,NULL,NULL,10,5,0,50,4326)
);

INSERT INTO TRACK (id, geometry) VALUES (
 1908,
 sde.st_geometry (4,19,10,20,10,5,0,40,4326)
);

PostgreSQL

CREATE TABLE track (
 id serial,
 geometry sde.st_geometry
);
INSERT INTO track (geometry) VALUES (
 sde.st_geometry (0,0,NULL,NULL,10,5,0,50,4326)
);

INSERT INTO track (geometry) VALUES (
 sde.st_geometry (4,19,10,20,10,5,0,40,4326)
);

SQLite

CREATE TABLE track (
 id integer primary key autoincrement not null
);

SELECT AddGeometryColumn (
 NULL,
 'track',
 'geometry',
 4326,
 'geometry',
 'xy',
 'null'
);
INSERT INTO track (geometry) VALUES (
 st_geometry (0,0,NULL,NULL,10,5,0,50,4326)
);

INSERT INTO track (geometry) VALUES (
 st_geometry (4,19,10,20,10,5,0,40,4326)
);

Création et interrogation de secteurs paramétriques

Créez une table pwedge, puis insérez des ellipses dans cette table.

Oracle

CREATE TABLE pwedge (
 id integer,
 label varchar2(8),
 shape sde.st_geometry
);
INSERT INTO PWEDGE (uid, label, shape) VALUES (
 1,
 'Wedge1',
 sde.st_geometry (10,30,NULL,NULL,45,145,5,2,60,4326)
);

PostgreSQL

CREATE TABLE pwedge (
 id serial,
 label varchar(8),
 shape sde.st_geometry
);
INSERT INTO pwedge (label, shape) VALUES (
 'Wedge',
 sde.st_geometry(10,30,NULL,NULL,45,145,5,2,60,4326)
);

SQLite

CREATE TABLE pwedge (
 id integer primary key autoincrement not null,
 label varchar(8)
);

SELECT AddGeometryColumn (
 NULL,
 'pwedge',
 'shape',
 4326,
 'geometry',
 'xy',
 'null'
);
INSERT INTO pwedge (label, shape) VALUES (
 'Wedge',
 st_geometry(10,30,NULL,NULL,45,145,5,2,60,4326)
);

Thèmes connexes

5/10/2014