ArcSDE vs. Oracle Spatial 7

常见几何对象的构造

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

你可能感兴趣的:(oracle,sql,c,null)