ST_MPolyFromWKB

Definition

Mit ST_MPointFromWKB wird anhand eines Well-known Binary-Formats (WKB) vom Typ ST_MultiPolygon und einer Raumbezugs-ID ein ST_MultiPolygon-Objekt zurückgegeben.

Syntax

Oracle

sde.st_mpolyfromwkb (wkb blob, srid integer)

PostgreSQL

sde.st_mpolyfromwkb (wkb bytea, srid integer)

SQLite

st_mpolyfromwkb (wkb blob, srid int32)

Rückgabetyp

ST_MultiPolygon

Beispiel

In diesem Beispiel wird veranschaulicht, wie ST_MPolyFromWKB zum Erstellen eines Multipolygons aus einem Well-known Binary-Format verwendet werden kann. Die Geometrie ist ein Multipolygon im Raumbezugssystem 4326. In diesem Beispiel wird das Multipolygon mit der ID = 10 in der Spalte "geometry" der Tabelle "sample_mpolys" gespeichert; anschließend wird die Spalte "wbk" mit einem Well-known Binary-Format (mithilfe der Funktion ST_AsBinary) aktualisiert. Zum Schluss wird mit der ST_MPolyFromWKB-Funktion das Multipolygon aus der Spalte "wbk" zurückgegeben. Die Tabelle "sample_mpolys" verfügt über die Spalte "geometry", in der das Multipolygon gespeichert wird, sowie über die Spalte "wbk", in der die WBK-Repräsentation des Multipolygons gespeichert wird.

Die SELECT-Anweisung enthält die ST_MPolyFromWKB-Funktion, mit der das Multipolygon aus der Spalte "WBK" abgerufen wird.

Oracle

CREATE TABLE sample_mpolys (
 id integer,
 geometry sde.st_geometry,
 wkb blob
);

INSERT INTO SAMPLE_MPOLYS (id, geometry) VALUES (
 10,
 sde.st_multipolygon ('multipolygon (((1 72, 4 79, 5 76, 1 72), (10 20, 10 40, 30 41, 10 20), (9 43, 7 44, 6 47, 9 43)))', 4326)
);

UPDATE SAMPLE_MPOLYS
 SET wkb = sde.st_asbinary (geometry)
 WHERE id = 10;
SELECT id, sde.st_astext (sde.st_mpolyfromwkb (wkb,4326)) MULTIPOLYGON
 FROM SAMPLE_MPOLYS
 WHERE id = 10;

ID   MULTIPOLYGON

10   MULTIPOLYGON (((10.00000000 20.00000000, 30.00000000 41.00000000, 10.00000000 40.00000000, 10.00000000 20.00000000)), (1.00000000 72.00000000, 5.00000000 76.00000000, 4.00000000 79.0000000, 1.00000000 72,00000000)), (9.00000000 43.00000000, 6.00000000 47.00000000, 7.00000000 44.00000000, 9.00000000 43.00000000 )))

PostgreSQL

CREATE TABLE sample_mpolys (
 id integer,
 geometry sde.st_geometry,
 wkb bytea
);

INSERT INTO sample_mpolys (id, geometry) VALUES (
 10,
 sde.st_multipolygon ('multipolygon (((1 72, 4 79, 5 76, 1 72), (10 20, 10 40, 30 41, 10 20), (9 43, 7 44, 6 47, 9 43)))', 4326)
);

UPDATE sample_mpolys
 SET wkb = sde.st_asbinary (geometry)
 WHERE id = 10;
SELECT id, sde.st_astext (sde.st_mpolyfromwkb (wkb,4326)) 
 AS MULTIPOLYGON
 FROM sample_mpolys
 WHERE id = 10;

id   multipolygon

10   MULTIPOLYGON (((10 20, 30 41, 10 40, 10 20)),
 ((1 72, 5 76, 4 79, 1 72)), ((9 43, 6 47, 7 44, 9 43)))

SQLite

CREATE TABLE sample_mpolys (
 id integer,
 wkb blob
);

SELECT AddGeometryColumn(
 NULL,
 'sample_mpolys',
 'geometry',
 4326,
 'multipolygon',
 'xy',
 'null'
);

INSERT INTO SAMPLE_MPOLYS (id, geometry) VALUES (
 10,
 st_multipolygon ('multipolygon (((1 72, 4 79, 5 76, 1 72), (10 20, 10 40, 30 41, 10 20), (9 43, 7 44, 6 47, 9 43)))', 4326)
);

UPDATE SAMPLE_MPOLYS
 SET wkb = st_asbinary (geometry)
 WHERE id = 10;
SELECT id, st_astext (st_mpolyfromwkb (wkb,4326)) 
 AS "Multipolygon"
 FROM sample_mpolys
 WHERE id = 10;

id   Multipolygon

10   MULTIPOLYGON ((( 10.00000000 20.00000000, 30.00000000 41.00000000, 10.00000000 40.00000000, 10.00000000 20.00000000)),
 ((1.00000000 72.00000000, 5.00000000 76.00000000, 4.00000000 79.00000000, 1.00000000 72.00000000)), 
 ((9.00000000 43.00000000, 6.00000000 47.00000000, 7.00000000 44.00000000, 9.00000000 43.00000000)))

Verwandte Themen

5/10/2014