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的CAPI函数和C++类库函数的方法来转换空间数据,但这并未涵盖数据质量控制的策略。另一方面,ArcCatalog的Data Interoperability工具可以实现数据转换,但可能造成数据偏差。 本文中...
Oracle9iSpatial则是Oracle数据库的一个扩展,专门用于处理空间数据。它提供了完整的空间数据类型和函数,支持标准的OGC(开放地理空间联盟)规范,使得在Oracle数据库中处理地理信息变得简单。 两者在数据模型上的...
本文将详细解析如何配置Oracle数据库以支持ST_Geometry SQL函数,使数据库能够高效地进行空间数据的存储、检索与分析。 ### 配置Oracle网络服务以使用ST_Geometry #### 一、理解ST_Geometry ST_Geometry是用于...
ArcSDE是Esri公司推出的一款空间数据库引擎,它能够将地理信息无缝地集成到关系型数据库管理系统(RDBMS)中,如Oracle、SQL Server、PostgreSQL等。通过ArcSDE,用户可以高效地存储、管理和分析大量的地理空间数据...
ArcSDE(ArcSpatiaL Data Engine)是Esri公司的一款核心产品,主要用于地理空间数据的管理和访问,它可以集成到多种数据库系统中,如Oracle、IBM DB2、Microsoft SQL Server等,以提供强大的GIS(地理信息系统)功能...
3. **支持栅格数据**:ArcSDE 8扩展了对栅格数据的支持,包括GRID、TIFF、ERDAS IMAGINE、BIL/BIP/BSQ、BMP、MrSID、JPEG、GIF和ADRG等多种格式。它能够处理大范围、高分辨率的栅格数据,通过自动分块和压缩提高访问...
ArcSDE支持标准的SQL语法,同时也提供了扩展的SQL语法,如ST_Geometry函数,用于处理空间对象。 ### 3. 体系结构 ArcSDE的体系结构主要由三部分组成:客户端、服务端和数据库。客户端是用户界面,如ArcGIS Desktop...
ArcSDE是Esri公司开发的一种用于管理地理空间数据的中间件,它能够支持多种数据库系统,如Oracle、SQL Server、DB2等,提供高效、可靠的地理数据存储和访问。本文将深入探讨如何通过不同客户端与ArcSDE进行连接,以...
Oracle Spatial 是 Oracle 数据库的一个组件,提供了一套完整的 SQL 架构和函数集,用于在 Oracle 8i 企业版数据库中存储、检索、更新和查询空间特征集合。通过对象关系模型(Object-Relational Model),Oracle ...
SE_ERROR结构体用于接收SDE API调用的错误信息,包含了错误代码、扩展错误代码以及两个字符串数组,分别用于存放简短和详细的错误消息。 ```vbnet (LayoutKind.Sequential, CharSet:=CharSet.Unicode)> Public ...
Oracle Spatial是Oracle数据库的一个扩展模块,专门用于处理和分析地理空间数据。这个模块为数据库提供了强大的空间数据管理和分析能力,广泛应用于地理信息系统(GIS)和地理位置服务中。以下是对Oracle Spatial的...
本压缩包“arcgis.rar”提供了VBA(Visual Basic for Applications)在ArcGIS中的应用以及ArcGIS与ArcSDE的相关学习资料,旨在帮助初学者快速掌握ArcGIS的基本操作和高级功能。 一、VBA与ArcGIS结合 VBA是Microsoft...
Oracle数据库以其强大的功能、高度的安全性和可扩展性而闻名,特别适用于处理大量数据和高并发访问的应用场景。 - **应用领域广泛**:Oracle数据库被广泛应用于各个行业,如银行、电信、航空、保险、金融和电子商务...
Oracle Spatial是甲骨文公司提供的用于GIS数据存储的空间数据处理系统,它通过扩展的SDO_GEOMETRY和SDO_GEORASTER数据类型实现了矢量和栅格数据的一体化管理。这种一体化管理,基于Oracle数据库强大的关系数据管理...
- **数据建模**:PostGIS采用空间扩展的方式,为PostgreSQL添加了空间数据类型和函数。 - **锁定支持**:PostGIS支持行级锁定,对于并发事务处理尤为重要。 - **数据源**:PostGIS数据源包括空间表和视图,可被...
- **ArcSDE**:作为ESRI的核心组件之一,ArcSDE能够支持多种数据库管理系统,包括Oracle、SQL Server等,为用户提供了一种高度灵活且可扩展的解决方案。 - **SpatialWare**:MapInfo公司推出的SpatialWare是另一种...
对于使用Oracle数据库的企业级ArcSDE地理数据库,新增了ST_Transform SQL函数,使得在Oracle环境中进行空间坐标转换变得更加简便。 #### 五、ArcGIS Engine ##### 动态显示能力的改进 ArcGIS Engine的动态显示能力...
它能够与多种数据库系统集成,如ArcSDE、Oracle Spatial、MS SQL Server等,支持多种地理数据格式,如Shapefile、Geodatabase等。通过Visual C++,开发者可以利用MapObject的API构建用户界面,实现地图浏览、缩放、...
系统配置方案采用了Visual Basic 6.0 (VB6.0)作为开发语言,配合ArcGIS的ArcSDE和ArcObjects组件,并使用Oracle 9i作为数据库系统。VB6.0提供了快速开发的优点,并能够方便地调用GIS操作组件。ArcObjects是ESRI公司...