常見幾何對象的構造
介紹ESRI的ST_GEOMETRY的幾何物件建構方法比Oracle Spatial就輕鬆多了,我們已經知道ST_GEOMETRY的各個子類型中的建構函式構造幾何對象時都會首根據參數拼裝成WKT格式的字串,然後調用ST_SHAPELIB連結庫轉化到二進位的幾何對象返回,那相對更通用的方法就是直接使用ST_GEOMETRY的建構函式,給一個WKT格式的字串作為初始化參數就可以了:
SQL> select sde.st_geometry('POINT(1 1)',0) from dual;
SDE.ST_GEOMETRY('POINT(11)',0)(ENTITY, NUMPTS, MINX, MINY, MAXX, MAXY, MINZ, MAXZ, MINM, MAXM, AREA, LEN, SRID, POINTS)
------------------------------------------------------------------------------------------------------------------------
ST_GEOMETRY(1, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, 0, 0, '0C0000000100000080A8B3D7AB1780A8B3D7AB17')
在下面給出一些常見幾何對象的樣本,其中前兩個對象的定義可以和上面Oracle Spatial中相同對象的定義作下比較:
矩形 |
POLYGON((1 1,5 1,5 7,1 7,1 1)) |
有洞的多邊形 |
POLYGON((2 4,4 3,10 3,13 5,13 9,11 13,5 13,2 11,2 4),(7 5,10 5,10 10,7 10,7 5)) |
點 |
POINT(1 1) |
線 |
LINESTRING(0 0,1 1,1 2) |
面(多邊形) |
POLYGON((0 0,1 0,1 1, 0 1,0 0),(2 0, 3 0,3 1,2 1,2 0)) |
多點 |
MULTIPOINT(0 0,1 2) |
多線 |
MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) |
多面 |
MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) |
幾何對象集合 |
GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4))) |