ST_MPolyFromWKB

定義

ST_MPointFromWKB は、ST_MultiPolygon タイプの WKB 表現と空間参照 ID を受け取って、ST_MultiPolygon を返します。

構文

Oracle

sde.st_mpolyfromwkb (wkb blob, srid integer)

PostgreSQL

sde.st_mpolyfromwkb (wkb bytea, srid integer)

戻り値のタイプ

ST_MultiPolygon

以下の例では、読みやすいように結果の書式を再設定しています。結果で表示される間隔は、各自のオンライン表示によって異なります。この例では、ST_MPolyFromWKB を使用して、その WKB 表現からマルチポリゴンを作成する方法を示しています。ジオメトリは、空間参照系 1 のマルチポリゴンです。この例では、マルチポリゴンを sample_mpolys テーブルの geometry 列に ID = 10 で格納した後、wkb 列を(ST_AsBinary 関数を使用して)WKB 表現で更新しています。最後に、ST_MPolyFromWKB 関数を使用して、wkb 列からマルチポリゴンを返します。このジオメトリの X および Y 座標は、v ポリゴン 1:(1, 72)、(4, 79)、(5, 76)、(1, 72)、v ポリゴン 2:(10, 20)、(10, 40)、(30, 41)、(10, 20)、v ポリゴン 3:(9, 43)、(7, 44)、(6, 47)、(9, 43)です。sample_mpolys テーブルには、マルチポリゴンを格納する geometry 列と、マルチポリゴンの WKB 表現を格納する wkb 列があります。

Oracle

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

INSERT INTO SAMPLE_MPOLYS 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)))', 0)
);

UPDATE SAMPLE_MPOLYS
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;

PostgreSQL

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

INSERT INTO sample_mpolys 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)))', 0)
);

UPDATE sample_mpolys
SET wkb = sde.st_asbinary (geometry)
WHERE id = 10;

次の SELECT ステートメントで、ST_MPolyFromWKB 関数を使用して、WKB 列からマルチポリゴンを取得します。

Oracle

SELECT id, sde.st_astext (sde.st_mpolyfromwkb (wkb,0)) 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

SELECT id, sde.st_astext (sde.st_mpolyfromwkb (wkb,0)) 
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 )))

3/6/2012