单片机c语言sden,ST_Geometry及使用大全.pdf

ST_Geometry及使用大全,ST_Geometry及使用大全,ST_Geometry及使用大全

1. 2. ST Intersection

37

4.2.5 ST SymmetricDiff

38

4.2.6 ST Union

39

4.2.7 ST Distance

43聚集函数

1.3 1 ST Aggr ConvexHull

4.3.2 ST Aggr Intersection

40

4.3.3 ST Aggr Union…

4.3.4空间数据属性提取的函数

4.3.4.1

求几何维度的函数

n41

4342z值函数

41

4.3.4.3

量测值函数.

4.3.4.4

取几何类型函数

41

4.345 st Point相关函数…241

4.3.4.6

面积和长度函数…241

43.47 st Line string相关函数

43.48 ST MultilineString相关函数…142

434.9 St Polygon相关函数42

43.4.10 ST Multipolygon相关函数

4.3.4.11

求几何坐标点个数函数

43

4.34.12空间参考系相关函数

43

4.3.4.13

其他函数

.43

第一章 ST Geometry与配置

1.1简介

ArcsDE for Oracle提供了 ST Geometry类型来存储几何数据。ST_ Geometry是一种

遵循lsO和OGC规范的,可以通过SQL直接读取的空间信息存储类型。采用这种存储方

式能够更好的利用 oracle的资源,更好的兼容 oracle的特征,比如复制和分区,并且能够

更快的读取空间数据。使用 ST Geometry存储空间数据,可以把业务数据和空间数据存储

到一张表中(使用 SDENBLOB方式业务数据和空间数据是分开存储在B表和F表中的)

因此可以很方使的在业务数据中增加空间数据(只需要在业务表中增加ST_ Geometry列)。

使用这神存储方式还能够简化多用户的读取,管理(只需要管理一张表)。

从 ArcGIs93开始,新的 ArcSdE geodatabases for Oracle会默认使用

ST_ Geometry方式来存储空间数据。它实现了SQL3规范中的用户自定义类型

(user- defined data types),允许用户使用 ST Geometry类型创建列来存储诸如界址点,

街道,地块等空间数据。

使用ST_ Geometry类型存储空间数据,具有以下优势:

1)通过SQL函数( ISO SQL∧MM标准)直接访问空间数据

2〕使用SαL语句存储、检索操纵空间数据,就像其他类型数据一样。

3)通过存储过程来进行复杂的空间数据检索和分析。

4)其他应用程序可以通过SQL语句来访问存储在 geodatabase中的数据。从 ArcGIS93

开始,新的 ArcSDE geodatabases for Oracle要求所以ST函数调用的时候前面都要加上

SDE schema名称。例如:要对査询出来的空间数据进行 union操作,则SQL函数需要这

样写:"sde. ST Union",在9,2版本之前,可以不加 SDE schema名称。

2基于0 racle的ST_ Geometry的配置

.2.10rac1e监听配置

从9.3开始,默认创建的婁素类都使用ST_ Geometry存储空间数据,9.3版本之前,

可以通过配 dbtune参数来完成。访问存储在 oracle中的 ST Geometry类型数据的SQL

数,通过扩展 oracle的 external procedure agent或者 extproc来实现,因此,直接使用

这些SQL函数需要配置 oracle的 listener,让 oracle能够找到这些扩展厍。如果使用SDE

读取这些数据,则不需要配置。

下面介绍一下如何配置 oracle listener。(关于 oracle的 listener的详细配置方法请参考

oracle相关文档)

1.2.1.1 Windows环境的配置

1)找到 oracle数据库的安装目录,然后定位到 ORACLE HOME\ network\admin目录,例如

D: oracle\product\ 11.1.0\db_ 1\network \admin

2)备份 listener。ora文件(这点很重要,在对 oracle的配置做仨何更改的时候都要进行备份)

3)打开 listener ora文件,找到( PROGRAM= extproc这一行,在这行下面添加对 ST SHAPELIB的引用,即指定ST_ SHAPELIB

的地址,如下

Windows F: (ENVS="EXTPROC DLLS-

其中

D: \ArcGIS\ ArcSDE_ Oracle\ArCSDE\ora11gee\ bin\st shapelib. d”为ST_ SHAPELIB的物坦路径,可以根据安装情况自己修改。

4)保仔 listener. ora文什,重新启动监听程序。

如果 ArcsDE和 Oracle不是安装在一起,需要把外部库文件拷贝到 Oracle目永下,重新设置路径,如需要拷贝

st snapc⊥ib,dl-pe. dll se dl三个文件到 ORACLE HOME/b下如D:\ oracle\product\1110db1uB,同时需要修改成

xl F:(ENVS-EXTPROC DLLS-C: \ArcSDE\sdeex=93\bin\st shapel-bdll")

5)下面是 listenerora例子:

D LIST LISTENER

IDL工S卫

SI二LE

SID NAME PLSExtProc)

ORACIE HOM

(ENVS-"EXI PROC DLLS-D: ArcGIS\ArCSDE Oracle \ArcsDE\orallgexe\LIB\s- shapelib d-1")

(SID DESC

(STD NAN

OraclesIDName l

ORACLE HOME D: oracle\product\Il lo\cb 1)

(GLOBAL NAME OracleSIDName

L二 STENER

(D上SCR⊥ON=

(二 DRESS=( PROTOCOL=工PC)(Ky= EXTPRO~1)

(A-DRESS =(PROTOCOL TCP)(HCST =192.168.2.23)(PORT=1521))

注:这里需要注意红色部分,其中 EXTPROC、 PLSExt Proc要跟TNs网络服务名配置中的要保持一致(文件: tnsnamc s.ora)

12.12 Linux环境的配置

1)找到 oracle数据库的安表目录,然后定位到 ORACLE HOME\network\admin目录,例如:

echo SORACLE HOME

/oracle/10.2/ db 1

2)进入备份 listener. o文件(这烹很重要,在对 oracle的配置做任何更改的时候都要进行备份)

Cd SCRACLE HOME

Cd admin

Cp⊥ stonor.ora⊥ istance.ora,cpy

3)打丌 listenerora文件,找到( PROGRAM= extproc)这行,在这行下面添加对 ST SHAPELIB的引用,即指定1 ibs shape1ib

的地址,如下:

(ENVS-"EXTPROC DLLS-/software/sde/sde exe/lic/l-bst shapelibs")H

“/ software/sde/ sde exe/1ib/1 ibs shapelib.sp”为 list shapelib的物理路径,可以根据安装情况自己修改。

4)保存 listener. ora文什,重新启动监听程序。

如昊 ArCSDE和 Oracle不是安装在起,需要扣外部厍文件拷仄到 Oracle目录下,亘新设置路径,如需要拷贝

二 ibs shape-ib, sp pe. sp sg. spl三个文件到 ORACLE HOME/b下如/ software/ oracle/app/ oracle/10203,同时需要

修改成如下:(ENs-"三 XIPROC DLL3-/s0 ftware/sde/ sde exe/1ib/1 ibs shapelib.sp"

5)下面是 listener, ora例子:

( DESCRIPTION L工sT=

(D彐S~ RIPTION=

(ADRESS =(PRC''OCO- =ICP)(HOSI=192.168.2.23)(PORT=1234)

(ADDRESS LIST

(ADCRESS -(PROTOCOL- IPC)(KEY EXTPRCCI!)

S工DI工 ST LSNR NYD3=

SIDL工s卫

(SID DES

(S⊥DNAM=2 L SEXtbroc)

(ORACLE HOME =/software/oracle/apc/cracle/10203

(PROGRAM- cxtproc

(ENVS="EXTPROC DLLS=/software/sde/sde exe/lic/l-bst shapelib sc, LD _IBRARY PATH=/so=tware/sd

e/sce exe/lib)

(SID DESC

(GLOBAL DENAME-myd=)

/software/oracle/apc/cracle/10203)

(SID NAME MYDB

121.3Unix环境的配置

找到oace数据库的安装目录,然后定位到 ORACLE HOME\ network\admin目录,例如:

SORACLE HOME

/oracle/10.2/db 1

2进入备份 istenerora文件(这点很重要,在对orae的配置做任何更改的时候都要进行备份

k

Cd admin

Cp listener. ora listener. ora cpy

3)打开 stenerora文件,找到( PROGRAM= extproc)这一行,在这行下面添加对 ST SHAPELIB的引用,即指定 lbst shape1ib

的地址,如下:(ENS=" EXTPROC DLL5=/ arcsde/ arcsde1/ seere93/ib/ list shapelib_64.50")其中

arcsde/ arcsde/ sneeze93/b/ ibst shapelib_64sσ”为 ibs shapely的物理路径,可以根据安装情况自己修改

4)保存 listenerora文件,重新启动监听程序。

如昊 ArcSDE和 Oracle不是安裝在起,需要扣外部库文仹拷仄到 Oracle目录下,亘新设置路径,如需要拷」

ibs shape1ib54,s。1ibpe64,so1isg64.0三个文件到 ORACLE HOME/1下如/ oracle/10.2/db1,同时

需要修改成如下:(ENVS=" EXTPROC DLL5=/orac1e/10.2/db1/1b/1 ibs shapelib64.so")

下面是 listener. ora例

LSNE MYD3

( DESCR工 PTION L工ST=

(AD上SS=(

ICP)(HOS_= my DhSeverUrl)(PORT=1234)

(ADCRESS-(PRCOCO-- IPC)(KEY- EXTPROCI!

SID LIST LSNE MYD3

(S⊥DD上SC

(SID NAME PLSExtProc)

(ORACLE HOME =/software/oracle/apr/cracle/10203)

(PROGRAM-cxtproc)

(ENV-"EXTPROC DLLS-/arcsde/arcsdel/sdeexe93/lib/libst shapelib 64.sO,

L⊥B上AIH=/ arcsde/ arcsde l/ deere93/1ib")

(STD DESC

(GLOBAL DENZ ME-mydo

(ORACLE HOME -/software/oracle/aps/cracle/1020

(SID NAME MY DB)

1.2.20rac1eTNS配置

oace文件 tnsnames ora中包含了一个数据厍服务。止文件可以定义木地数据库或远程服务器上的服务

其屮一项是专门为在本地数据库服务器来使用(IPC)的进程间通信并发送函数调用 extproc。此项被标记

EXTPROC CONNECTION DATA。下面是一个例子,它在文件 tnsnames. ora中出现。(请注意,这可

能不会在文件中唯一的条日。)

EXTPROC CONNECTION DATA

(DESCRIPTION

(ADDRESS LIST

ADDRESS=(PROTOCOL IPC)(Key= EXTPROC1)

(CONNECT DATA

(SID= PLSExtProc

(PRESENTATION- RO)

EXTPROC CONNECTION DATA

此项必须始终标签 EXTPROC CONNECTION DATA名称,不能更改

Key和SD

在此项中的两个项目是可以改变的关键( EXTPROC1)和S( PLSEXtProc)的名称。这些项目是用来

连接到这个项日中的文件 listener.oa中的对应信息关键可以是任何的短名称,但必须同时在 listener ora

和 tnsnames . ora文件相同。这些值是大小写敏感的。它们仅用于监听进程,而不是由用户或应用程序

1.30rac|e的 ST Geometry权限及数据库

3.1检查ST定义

松查 st astext、 st geometry、 st geometry ope rator.的定义如下

e C: \WINDOWS\system32\cmd. exe sqlplus sde/sdeadbp.. - x

SQL> select dbms_metadata. get_ddl< OPERATOR','ST_ASTEXT','SDE')from dual;

DBMS_METADATA.GET_DDL

CREATE OR REPLACE OPERATOR SDE.ST ASTEXT BINDING

C.ST GEOMETRY) RETURN CLOB

USINGSDE.5T GEOMETRY OPERATORS.ST ASTEXT F

SQL>

1.3.2检查 st shapelib对象定义

在执行的 Sde. st geometry shapelib_ pkg.st astext程序过程中,调用∫一个 astext函数(该函数在

SDEHOME\bin\st shapelib.d! windows)$ SDEHOME/ib/list shapelib.so(uniX,inux)定义的)。这旦需要

借助别名库( Alias Library)来表示动态库路径。别名库是数据厍里的一个对象,在SDE中就是 st shapelib

对象(该对象的类型为 library对象,其定义在下面),用来描述一个外部函数所在的动态链接库的路径和名

称。通过別名库,从而可以知道被调用的外部区数在哪个文件里。

Library对象的定义

Windows

CAC: \WINDOWS\system32\cmd. exe- sqlplus sde/sde@dbp.

QL> select file spec from user_libraries where library nane=ST- SHAPELIB;

FILE- SPEC

D: \Progran Files \ArcGIS \ArcSDE\Dral0gexe \bin\st_shape lib.dll

Q>

Linux Unix.

ca Telnet192.168.200.200

SQL>select file_spec from user_libraries where library_name="ST_SHAPELIB':

FILE SPEC

home/arcsde/sdeexe93/lib/libs_shape lib.so

注:如果不存在 St shapelib对象所指向的动态库的路径个正确,可以通过 select*from

user libraries査看指向的动态库的路径是否正确,如果不正确可以通过 create or replace

library st shape lib as' your lib path来进行修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值