ST_Geometry存储格式技术研究与总结

环境配置:

   本次技术调研采用了一下软件配置:Windos Server 2003系统,ArcGIS Desktop9.3,ArcSDE9.3 ,Oracle10G数据库。

1、数据库服务器端环境配置方法

由于ST_Geometry的存储格式是由Esri公司提出的一种新空间数据存储标准,如果要通过SQL函数访问存储在Oracle中的ST_Geometry类型的数据,则需要通过扩展Oracle的的external procedure agent或者extproc来实现,因此,直接使用这些SQL函数需要配置oracle的listener,让oracle能够找到这些扩展库。如果使用SDE读取这些数据,则不需要配置。下面简单介绍一下Windows下配置步骤:

下面主要介绍一下默认情况下如何配置(windows下面)。
1) 找到oracle数据库的安装目录(服务器端),然后定位到oraclehome\NETWORK\ADMIN目录
2) 备份listener.ora文件,这点很重要,在对oracle的配置做任何更改的时候都要进行备份
3) 打开listener.ora文件,找到 (PROGRAM = extproc) 这一行,在这行下面添加对ST_SHAPELIB的引用,即指定ST_SHAPELIB的地址,如下:
(ENVS="EXTPROC_DLLS=C:\Program Files\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll")
其中“D:\Program Files\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll”为ST_SHAPELIB的物理路径,可以根据安装情况自己修改。
4) 保存listener.ora文件,重新启动监听程序。
barry
附录:
未修改前的listener.ora
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1
\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (PROGRAM = extproc)

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)

    )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = rqgw)(PORT = 1521))

    )

  )
修改后的listener.ora
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1
\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (PROGRAM = extproc)

(ENV = "EXTPROC_DLLS=d:\program files\arcgis\arcsde\ora10gexe\bin\st_shapelib.dll")

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)

    )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = rqgw)(PORT = 1521))

    )

  )

2、常用函数介绍(oracle)

更多的函数使用说明,请感兴趣的人自己查看这里帮助:

ArcGIS Desktop help->Geodatabase and ArcSDE->Working with geodatabases using SQL->SQL functions reference

   1、sde.st_crosses (g1 sde.st_geometry, g2 sde.st_geometry) 返回值1 or 0,判断两个几何要素是否相交    2、sde.st_within (g1 sde.st_geometry, g2 sde.st_geometry) 返回值1 or 0,判断第一个要素是否完全包含在第二个要素内    3、sde.st_contains (g1 sde.st_geometry, g2 sde.st_geometry) 返回值1 or 0,判断第一个要素是否完全包含第二个要素    4、sde.st_intersects (g1 sde.st_geometry, g2 sde.st_geometry) 返回值1 or 0,判断两个几何要素intersection部分是否为空    5、sde.st_buffer(g1 sde.st_geometry, distance double_precision)返回st_geometry类型,计算几何体的缓冲范围3、简单几何要素的表示方法点 POINT  (46457.63122559 48886.52319336)线 LINESTRING  (46853.43719482 48912.61218262, 46855.55920410 48902.85321045)面 POLYGON  ((46146.16320801 49057.50921631, 46279.90820313 48845.41619873, 46286.44519043 48846.73419189, 46286.85321045 49082.47521973, 46284.29022217 49084.51019287, 46154.71423340 49071.47521973, 46147.40423584 49066.10620117, 46146.16320801 49057.50921631))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值