空间函数已经讲了三个类型了,再介绍一下最后一个类型,geometry类型。
该类型的函数的功能是创建一个新的geometry对象,其函数格式为:
--input:(Geometry_A, arcgs)
--returns (Geometry)
输入为一个Geometry对象以及一些参数,返回一个Geometry对象,以下三个函数是使用比较多的此类型的函数:
---ST_BUFFER
---ST_UNION
---ST_DIFFERENCE
最后举个例子,该例子在一个SQL语句中使用了前面所介绍的四种类型的函数,SQL语句如下:
select st_astext(shape) from testpoint where
st_within(shape,st_buffer(st_point(118.75386000,30.02375000,10),0.01))=1
/
ST_ASTEXT(SHAPE) -------------------------------------------------------------------------------- POINT ( 118.75386000 30.02375000) POINT ( 118.74942000 30.02905000)
上面介绍了矢量数据的空间存储类型以及各种类型的函数,从ArcSDE10开始,ESRI提供了对栅格
数据进行存储的空间存储类型ST_RASTER,在上一节中已经介绍了现在SQLSERVER,ORACLE和PostgreSQL
中支持这种存储类型,可以看看该存储类型在ORACLE中是如何定义的,首先现在ORACLE中安装此数据
类型:
192.168.100.228 [sde ~]$ sdesetup -o install_st_raster -d ORACLE10G -p sde
ESRI ArcSDE Server Setup Utility Wed Feb 9 10:06:29 2011
----------------------------------------------------------------
Install or update ST_RASTER schema objects: Are you sure? (Y/N): Y
Creating ST_RASTER schema...
C:/DOCUME~1/ZHAOGU~1/LOCALS~1/Temp: No such file or directory
Successfully created ST_RASTER schema.
Successfully installed ArcSDE components.
Refer SDEHOME/etc/sde_setup.log for more details.
安装完后,查看其定义如下:
SQL> desc st_raster st_raster is NOT FINAL Name Null? Type ----------------------------------------- -------- ---------------------------- RASTER_ID NUMBER(38) TYPE NUMBER(38) EXTENT SE_EXTENT PROPERTIES SE_RASTERPROPERTY_LIST RASTERBAND_LIST ST_RASTERBAND_LIST DATA ST_PIXELDATA METHOD ------ FINAL CONSTRUCTOR FUNCTION ST_RASTER RETURNS SELF AS RESULT Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- FILENAME VARCHAR2 IN OPT VARCHAR2 IN METHOD ------ FINAL CONSTRUCTOR FUNCTION ST_RASTER RETURNS SELF AS RESULT Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- FILENAME VARCHAR2 IN METHOD ------ FINAL CONSTRUCTOR FUNCTION ST_RASTER RETURNS SELF AS RESULT Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- DATA ST_PIXELDATA IN OPT VARCHAR2 IN METHOD ------ FINAL CONSTRUCTOR FUNCTION ST_RASTER RETURNS SELF AS RESULT Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- DATA ST_PIXELDATA IN METHOD ------ MEMBER FUNCTION DESCRIBE RETURNS CLOB METHOD ------ MEMBER FUNCTION DESCRIBE RETURNS CLOB Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION BUILDPYRAMID RETURNS ST_RASTER METHOD ------ MEMBER FUNCTION BUILDPYRAMID RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION BUILDSTATS RETURNS ST_RASTER METHOD ------ MEMBER FUNCTION BUILDSTATS RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- LEVEL NUMBER IN METHOD ------ MEMBER FUNCTION DELETESTATS RETURNS ST_RASTER METHOD ------ MEMBER FUNCTION DELETECOLORMAP RETURNS ST_RASTER METHOD ------ MEMBER FUNCTION SETCOLORMAP RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- FILENAME VARCHAR2 IN METHOD ------ MEMBER FUNCTION EXPORT RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- FILENAME VARCHAR2 IN METHOD ------ MEMBER FUNCTION EXPORT RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- FILENAME VARCHAR2 IN PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION MOSAIC RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- FILENAMES VARCHAR2 IN METHOD ------ MEMBER FUNCTION MOSAIC RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- FILENAMES VARCHAR2 IN PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION MOSAIC RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- DATA ST_PIXELDATA IN METHOD ------ MEMBER FUNCTION MOSAIC RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- DATA ST_PIXELDATA IN PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION CROP RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- EXTENT VARCHAR2 IN METHOD ------ MEMBER FUNCTION CROP RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- EXTENT VARCHAR2 IN UNIT VARCHAR2 IN METHOD ------ MEMBER FUNCTION SUBSET RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION SUBSET RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PARAM VARCHAR2 IN OPT VARCHAR2 IN METHOD ------ MEMBER FUNCTION GETVALUE RETURNS NUMBER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- BAND NUMBER IN LEVEL NUMBER IN X NUMBER IN Y NUMBER IN METHOD ------ MEMBER FUNCTION GETVALUE RETURNS NUMBER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- BAND NUMBER IN LEVEL NUMBER IN POINT SE_COORD IN METHOD ------ MEMBER FUNCTION HASCOLORMAP RETURNS NUMBER METHOD ------ MEMBER FUNCTION HASSTATS RETURNS NUMBER METHOD ------ MEMBER FUNCTION GETCOMPRESSIONTYPE RETURNS VARCHAR2 METHOD ------ MEMBER FUNCTION GETINTERPOLATIONTYPE RETURNS VARCHAR2 METHOD ------ MEMBER FUNCTION GETINTERLEAVETYPE RETURNS VARCHAR2 METHOD ------ MEMBER FUNCTION GETPIXELTYPE RETURNS VARCHAR2 METHOD ------ MEMBER FUNCTION GETPYRAMIDLEVEL RETURNS NUMBER METHOD ------ MEMBER FUNCTION GETPIXELDATA RETURNS ST_PIXELDATA METHOD ------ MEMBER FUNCTION GETPIXELDATA RETURNS ST_PIXELDATA Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PARAM VARCHAR2 IN METHOD ------ STATIC FUNCTION GETVERSION RETURNS NUMBER METHOD ------ MEMBER FUNCTION UPDATEVALUE RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- TYPE VARCHAR2 IN PARAM VARCHAR2 IN OPT VARCHAR2 IN METHOD ------ MEMBER FUNCTION UPDATEVALUE RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- OP VARCHAR2 IN PRIMARY VARCHAR2 IN PARAM VARCHAR2 IN OPT VARCHAR2 IN METHOD ------ MEMBER FUNCTION UPDATEVALUE RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- TYPE VARCHAR2 IN PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION UPDATEVALUE RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- TYPE VARCHAR2 IN METHOD ------ MEMBER FUNCTION UPDATEVALUE RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- TYPE VARCHAR2 IN PARAM VARCHAR2 IN OPT VARCHAR2 IN MINX NUMBER IN MINY NUMBER IN MAXX NUMBER IN MAXY NUMBER IN DATA BLOB IN MASK BLOB IN METHOD ------ MEMBER FUNCTION UPDATEVALUE RETURNS ST_RASTER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- OP VARCHAR2 IN DATA ST_PIXELDATA IN PARAM VARCHAR2 IN METHOD ------ MEMBER FUNCTION COPYVALUE RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- RASTERCOLUMNID UNDEFINED IN METHOD ------ MEMBER FUNCTION INSERTVALUE RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- RASTERCOLUMNID UNDEFINED IN FILENAME VARCHAR2 IN OPT VARCHAR2 IN METHOD ------ MEMBER FUNCTION INSERTVALUE RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- RASTERCOLUMNID UNDEFINED IN FILENAME VARCHAR2 IN OPT VARCHAR2 IN MINX NUMBER IN MINY NUMBER IN MAXX NUMBER IN MAXY NUMBER IN DATA BLOB IN MASK BLOB IN METHOD ------ MEMBER FUNCTION GETVALUE RETURNS NUMBER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- BUF VARCHAR2 IN OFFSET UNDEFINED IN METHOD ------ MEMBER FUNCTION GETVALUE RETURNS NUMBER Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- BAND UNDEFINED IN LEVEL UNDEFINED IN X NUMBER IN Y NUMBER IN UNIT VARCHAR2 IN METHOD ------ MEMBER FUNCTION GETPIXELDATA RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PARAM VARCHAR2 IN DATA BLOB IN/OUT NOCOPY MASK BLOB IN/OUT NOCOPY METHOD ------ MEMBER PROCEDURE DESCRIBE Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PARAM VARCHAR2 IN RESULT CLOB IN/OUT MEMBER PROCEDURE DELETEVALUE
其和ST_GEOMETRY基本上从结构上是一样的,都包括成员变量,成员函数等等。
1. 构造函数(Consturctors)
2. 属性函数
3. 编辑函数
在前面的章节中详细介绍了矢量和栅格数据存储类型的各项内容,那具体如何使用SQL来操作这两个空间存储类型,在下节中
进行详细介绍。