ST_GeomFromWKB
Definition
Mit ST_GeomFromWKB wird anhand eines Well-Known Binary-Formats (WKB) und einer Raumbezugs-ID ein ST_Geometry-Objekt zurückgegeben.
Syntax
Oracle
sde.st_geomfromwkb (wkb blob, srid integer)
PostgreSQL
sde.st_geomfromwkb (wkb, srid integer) sde.st_geomfromwkb (esri_shape bytea, srid integer)
Rückgabetyp
ST_Geometry
Beispiel
Im folgenden Beispiel wurden die Zeilen der Ergebnisse zur besseren Lesbarkeit neu formatiert. Die Abstände der Ihnen angezeigten Ergebnisse können abhängig von Ihrer Online-Darstellung variieren. Mit dem folgenden Code wird verdeutlicht, wie die ST_GeomFromWKB-Funktion verwendet werden kann, um eine Linie aus einer WKB-Linien-Repräsentation zu erstellen und einzufügen. Im folgenden Beispiel wird ein Datensatz in die Tabelle "sample_geometries" mit einer ID und einer Geometrie im Raumbezugssystem 1 in einem WKB-Format eingefügt.
Oracle
CREATE TABLE sample_geometries (id integer, geometry sde.st_geometry, wkb blob); INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES ( 1901, sde.st_geomfromtext ('point (1 2)', 0) ); INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES ( 1902, sde.st_geomfromtext ('linestring (33 2, 34 3, 35 6)', 0) ); INSERT INTO SAMPLE_GEOMETRIES (id, geometry) VALUES ( 1903, sde.st_geomfromtext ('polygon ((3 3, 4 6, 5 3, 3 3))', 0) ); UPDATE SAMPLE_GEOMETRIES SET wkb = sde.st_asbinary (geometry) WHERE id = 1901; UPDATE SAMPLE_GEOMETRIES SET wkb = sde.st_asbinary (geometry) WHERE id = 1902; UPDATE SAMPLE_GEOMETRIES SET wkb = sde.st_asbinary (geometry) WHERE id = 1903; SELECT id, sde.st_astext (sde.st_geomfromwkb (wkb, 0)) FROM SAMPLE_GEOMETRIES; ID GEOMETRY 1901 POINT (1.00000000 2.00000000) 1902 LINESTRING (33.00000000 2.00000000, 34.00000000 3.00000000, 35.00000000 6.00000000) 1903 POLYGON ((3.00000000 3.00000000, 5.00000000 3.00000000, 4.00000000 6.00000000, 3.00000000 3.00000000))
PostgreSQL
CREATE TABLE sample_geometries (id integer, geometry sde.st_geometry, wkb bytea); INSERT INTO sample_geometries (id, geometry) VALUES ( 1901, sde.st_geometry ('point (1 2)', 0) ); INSERT INTO sample_geometries (id, geometry) VALUES ( 1902, sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 0) ); INSERT INTO sample_geometries (id, geometry) VALUES ( 1903, sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 0) ); UPDATE sample_geometries SET wkb = sde.st_asshape (geometry) WHERE id = 1901; UPDATE sample_geometries SET wkb = sde.st_asshape (geometry) WHERE id = 1902; UPDATE sample_geometries SET wkb = sde.st_asshape (geometry) WHERE id = 1903; SELECT id, sde.st_astext (sde.st_geomfromshape (wkb, 0)) FROM sample_geometries; id st_astext 1901 POINT (1 2) 1902 LINESTRING (33 2, 34 3, 35 6) 1903 POLYGON ((3 3, 5 3, 4 6, 3 3))
7/10/2012