`
hanyi366
  • 浏览: 290309 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ArcSDE for Oralce扩展函数配置

 
阅读更多

 

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文件,重新启动数据库 和 监听程序。

 

附录:

未修改前的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 =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
      (ENVS="EXTPROC_DLLS=d:\program files\arcgis\arcsde\ora10gexe\bin\st_shapelib.dll")
    )
  )
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))

 

 

4、例子

用SQL语句从test图层中取得坐标串

SELECT objectid, sde.st_astext(shape) XYstring FROM sde.test;

 

分享到:
评论

相关推荐

    ArcSDE与Oracle10i Spatial数据转换.pdf

    谭坤龙等人提出了一种基于ArcSDE的CAPI函数和C++类库函数的方法来转换空间数据,但这并未涵盖数据质量控制的策略。另一方面,ArcCatalog的Data Interoperability工具可以实现数据转换,但可能造成数据偏差。 本文中...

    ARCSDE与Oracle9iSpatial空间数据转换方法研究.pdf

    Oracle9iSpatial则是Oracle数据库的一个扩展,专门用于处理空间数据。它提供了完整的空间数据类型和函数,支持标准的OGC(开放地理空间联盟)规范,使得在Oracle数据库中处理地理信息变得简单。 两者在数据模型上的...

    为使用ST_Geometry SQL函数配置oracle的网络服务

    本文将详细解析如何配置Oracle数据库以支持ST_Geometry SQL函数,使数据库能够高效地进行空间数据的存储、检索与分析。 ### 配置Oracle网络服务以使用ST_Geometry #### 一、理解ST_Geometry ST_Geometry是用于...

    基于ArcSDE C API的ArcSDE客户端实现方法

    ArcSDE是Esri公司推出的一款空间数据库引擎,它能够将地理信息无缝地集成到关系型数据库管理系统(RDBMS)中,如Oracle、SQL Server、PostgreSQL等。通过ArcSDE,用户可以高效地存储、管理和分析大量的地理空间数据...

    ArcSde_SDK_9.3_C

    ArcSDE(ArcSpatiaL Data Engine)是Esri公司的一款核心产品,主要用于地理空间数据的管理和访问,它可以集成到多种数据库系统中,如Oracle、IBM DB2、Microsoft SQL Server等,以提供强大的GIS(地理信息系统)功能...

    ArcSDE 8 简介

    3. **支持栅格数据**:ArcSDE 8扩展了对栅格数据的支持,包括GRID、TIFF、ERDAS IMAGINE、BIL/BIP/BSQ、BMP、MrSID、JPEG、GIF和ADRG等多种格式。它能够处理大范围、高分辨率的栅格数据,通过自动分块和压缩提高访问...

    ArcSDE初级教程

    ArcSDE支持标准的SQL语法,同时也提供了扩展的SQL语法,如ST_Geometry函数,用于处理空间对象。 ### 3. 体系结构 ArcSDE的体系结构主要由三部分组成:客户端、服务端和数据库。客户端是用户界面,如ArcGIS Desktop...

    arcsde的多种连接方式

    ArcSDE是Esri公司开发的一种用于管理地理空间数据的中间件,它能够支持多种数据库系统,如Oracle、SQL Server、DB2等,提供高效、可靠的地理数据存储和访问。本文将深入探讨如何通过不同客户端与ArcSDE进行连接,以...

    Oracle spatial VS SDE

    Oracle Spatial 是 Oracle 数据库的一个组件,提供了一套完整的 SQL 架构和函数集,用于在 Oracle 8i 企业版数据库中存储、检索、更新和查询空间特征集合。通过对象关系模型(Object-Relational Model),Oracle ...

    SDE API的调用源码

    SE_ERROR结构体用于接收SDE API调用的错误信息,包含了错误代码、扩展错误代码以及两个字符串数组,分别用于存放简短和详细的错误消息。 ```vbnet (LayoutKind.Sequential, CharSet:=CharSet.Unicode)> Public ...

    Oracle Spatial

    Oracle Spatial是Oracle数据库的一个扩展模块,专门用于处理和分析地理空间数据。这个模块为数据库提供了强大的空间数据管理和分析能力,广泛应用于地理信息系统(GIS)和地理位置服务中。以下是对Oracle Spatial的...

    arcgis.rar_VBa_arcgis_arcgis vba_arcgis学习_arcsde

    本压缩包“arcgis.rar”提供了VBA(Visual Basic for Applications)在ArcGIS中的应用以及ArcGIS与ArcSDE的相关学习资料,旨在帮助初学者快速掌握ArcGIS的基本操作和高级功能。 一、VBA与ArcGIS结合 VBA是Microsoft...

    oracle空间数据库教案

    Oracle数据库以其强大的功能、高度的安全性和可扩展性而闻名,特别适用于处理大量数据和高并发访问的应用场景。 - **应用领域广泛**:Oracle数据库被广泛应用于各个行业,如银行、电信、航空、保险、金融和电子商务...

    基于Oracle Spatial多源异构空间数据一体化存储及管理方法研究.pdf

    Oracle Spatial是甲骨文公司提供的用于GIS数据存储的空间数据处理系统,它通过扩展的SDO_GEOMETRY和SDO_GEORASTER数据类型实现了矢量和栅格数据的一体化管理。这种一体化管理,基于Oracle数据库强大的关系数据管理...

    geoserver Database Research

    - **数据建模**:PostGIS采用空间扩展的方式,为PostgreSQL添加了空间数据类型和函数。 - **锁定支持**:PostGIS支持行级锁定,对于并发事务处理尤为重要。 - **数据源**:PostGIS数据源包括空间表和视图,可被...

    空间数据存储机制研究

    - **ArcSDE**:作为ESRI的核心组件之一,ArcSDE能够支持多种数据库管理系统,包括Oracle、SQL Server等,为用户提供了一种高度灵活且可扩展的解决方案。 - **SpatialWare**:MapInfo公司推出的SpatialWare是另一种...

    ArcGIS综合文档

    对于使用Oracle数据库的企业级ArcSDE地理数据库,新增了ST_Transform SQL函数,使得在Oracle环境中进行空间坐标转换变得更加简便。 #### 五、ArcGIS Engine ##### 动态显示能力的改进 ArcGIS Engine的动态显示能力...

    MoView-VC.rar_mapobject_moview_visual c

    它能够与多种数据库系统集成,如ArcSDE、Oracle Spatial、MS SQL Server等,支持多种地理数据格式,如Shapefile、Geodatabase等。通过Visual C++,开发者可以利用MapObject的API构建用户界面,实现地图浏览、缩放、...

    苹果病虫害数据处理系统设计与实现.pdf

    系统配置方案采用了Visual Basic 6.0 (VB6.0)作为开发语言,配合ArcGIS的ArcSDE和ArcObjects组件,并使用Oracle 9i作为数据库系统。VB6.0提供了快速开发的优点,并能够方便地调用GIS操作组件。ArcObjects是ESRI公司...

Global site tag (gtag.js) - Google Analytics