ST_Geometry

Definition

Mit ST_Geometry wird eine Geometrie aus einem Well-Known Text-Format erstellt.

Beim Erstellen von räumlichen Tabellen, die mit ArcGIS verwendet werden sollen, wird empfohlen, die Spalte als Geometrie-Supertype (z. B. "ST_Geometry") zu erstellen, statt einen ST_Geometry-Subtype wie ST_LineString anzugeben.

Syntax

Oracle

  • Für Linestrings, Polygone und Punkte

    sde.st_geometry (wkt clob, srid integer)

  • Für optimierte Punkte (die keinen Extproc-Agenten starten und die Abfrage somit schneller verarbeiten)

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

    Verwenden Sie die Konstruktion mit optimierten Punkten, wenn Sie Batch-Einfügungen mit einer großen Anzahl von Punktdaten durchführen.

  • Für parametrische Kreise

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

  • Für parametrische Ellipsen

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

  • Für parametrische Keile

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

PostgreSQL

  • Für Linestrings, Polygone und Punkte

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

  • Für parametrische Kreise

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

  • Für parametrische Ellipsen

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

  • Für parametrische Keile

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

SQLite

  • Für Linestrings, Polygone und Punkte

    st_geometry (text  WKT_string,int32 srid)

  • Für parametrische Kreise

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

  • Für parametrische Ellipsen

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

  • Für parametrische Keile

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

Rückgabetyp

Oracle und PostgreSQL

ST_Geometry

SQLite

Geometryblob

Beispiele

Erstellen und Abfragen von Punkt-, Linestring- und Polygon-Features.

In diesen Beispielen wird eine Tabelle (geoms) erstellt, in die Punkt-, Linestring- und Polygonwerte eingefügt werden.

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)
);

Erstellen und Abfragen von parametrischen Kreisen

Erstellen Sie die Tabelle "radii", und fügen Sie Kreise ein.

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)
);

Erstellen und Abfragen von parametrischen Ellipsen

Erstellen Sie die Tabelle "track", und fügen Sie Ellipsen ein.

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)
);

Erstellen und Abfragen von parametrischen Keilen

Erstellen Sie die Tabelle "pwedge", und fügen Sie einen Keil ein.

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)
);

Verwandte Themen

5/10/2014