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