先初略的了解下SDE_Geometry和SDO_Geometry的区别:

1. SDO_GEOMETRY

Oracle Spatial在MDSYS模式下定义了一系列几何类型、函数来支持空间数据的存储和使用,最为人耳熟能详的就是SDO_GEOMETRY这种类型——当然,ArcSDE也可以使用这种类型进行存储。Oracle Spatial并没有像ArcGIS那样有一套从桌面到数据库到服务器到开发包的全方位GIS产品体系,因此向Oracle中加载数据相比用ArcGIS要麻烦得多,同时也没有那么多的数据源格式的支持。Oracle本身则提供了一个工具shp2sdo[1],可以帮助你导入Shapefile到Oracle Spatial中。

Oracle Spatial虽然使用了SDO_GEOMETRY类型作为几何对象的存储,不过它也提供了另外的一种类型ST_GEOMETRY,同时在此基础上还提供了一些符合OGCSimple Features Access规范的操作。

2.SDE_GEOMETRY

CREATE OR REPLACE

TYPE ST_GEOMETRY AS OBJECT (

GEOM SDO_GEOMETRY,

MEMBER FUNCTION GET_SDO_GEOM RETURN SDO_GEOMETRY DETERMINISTIC,

)

可见,Oracle Spatial的ST_GEOMETRY事实上还是通过对SDO_GEOMETRY的包装实现的。因此,我们可以通过最简单的构造函数来构造一个ST_GEOMETRY对象:

ST_GEOMETRY(geom SDO_GEOMETRY);

或者,也可以使用具体的ST_GEOMETRY类型来构造,比如用ST_POINT来构造一个点,你会发现内部Oracle Spatial还是根据参数生成了一个SDO_GEOMETRY对象存放了起来:

SQL> select st_point(1,1) from dual;

ST_POINT(1,1)(GEOM(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES))

------------------------------------------------------------------------------------------------------------------------

ST_POINT(SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(1, 1, NULL), NULL, NULL))

因此,表面上看Oracle Spatial中与OGC规范相关的主要就包括三部分(见图 2):两张记录几何字段和空间参考的系统表、一些ST打头的对象类型和一些OGC打头的空间操作函数。但是,由于ST_GEOMETRY使用的是SDO_GEOMETRY进行存储,因此这些SDO相关的内容也会被使用到。

3、ArcGIS支持的

从ArcSDE的Post Installation就可以看到,ArcSDE支持多种数据存储方式,不但支持ESRI自身的ST_GEOMETRY,也支持BLOB和SDO_GEOMETRY类型。

ArcSDE中的ST_GEOMETRY和Oracle Spatial中基于SDO_GEOMETRY的ST_GEOMETRY完全是不相干的两个东西。首先让我们来看一下ArcSDE中ST_GEOMETRY类型的定义:

CREATE OR REPLACE

Type st_geometry Authid current_user AS object

(entity integer,numpts integer,minx float(64),

miny float(64),maxx float(64),maxy float(64),

minz float (64),maxz float(64),minm float(64),

maxm float(64),area float(64),len float(64),

srid integer,points blob,

constructor Function st_geometry(geom_str clob,srid number) Return self AS result deterministic,

member Function st_area Return number,

member Function st_len Return number,

member Function st_length Return number,

member Function st_entity Return number,

member Function st_numpts Return number,

member Function st_minx Return number,

member Function st_maxx Return number,

member Function st_miny Return number,

member Function st_maxy Return number,

member Function st_minm Return number,

member Function st_maxm Return number,

member Function st_minz Return number,

member Function st_maxz Return number,

member Function st_srid Return number,

static Function get_release Return number) NOT final;

可见,一个ST_GEOMETRY中包含了一个几何对象的x、y、z、m坐标的范围、空间参考id、实体个数和点个数、几何对象的面积和长度、具体的节点坐标等信息。其中,节点坐标属性points比较特殊,这是一个blob类型的值。

让我们打开ST_GEOMETRY类型的构造函数就可以发现,事实上对几何对象的构造是通过ST_GEOMETRY_SHAPELIB_PKG这个包进行处理的,而这个包事实上会调用ESRI的ST_SHAPELIB这个外部动态链接库,我们可以看一下ST_GEOMETRY_SHAPELIB_PKG包里的geometryfromtext这个存储过程,这个过程在ST_GEOMETRY的构造函数中被调用了。

4、Arcgis10.1的.net创建FeatureClass

调用IFeatureWorkspace 类成员CreateFeatureClass,创建的Geometry类型可在Config.Keyword中指定。

在创建FeatureClass过程中,若不指定Config.Keyword,默认使用Oracle Spatial中的DEFAULTS类型ST_Geometry(到Oracle Spatial中查看默认导入的Feature Class表数据,Shape显示SDE.ST_GEOMETRY)。在使用CreateFeatureClass时,不建议Config.Keyword使用默认值。

说明:从ArcGIS 9.3开始,新的ArcSDE eodatabases for Oracle 会默认使用ST_Geometry 方式来存储空间数据。它实现了SQL3规范中的用户自定义类型(user-defined data types),允许用户使用ST_Geometry类型创建列来存储诸如界址点,街道,地块等空间数据。

备注:此文章中的Oracle Spatial的SDO_Geometry、ST_Geometry的相关内容,从ArcSDE vs. Oracle Spatial。

转载于:https://www.cnblogs.com/telwanggs/p/5252779.html

Arcgis创建SDE_Geometry、SDO_Geometry的区别相关推荐

  1. Arcgis创建SDE_Geometry、SDO_Geometry的区别【转】

    Arcgis创建SDE_Geometry.SDO_Geometry的区别[转] 1. SDO_GEOMETRY Oracle Spatial在MDSYS模式下定义了一系列几何类型.函数来支持空间数据的 ...

  2. 【QGIS入门实战精品教程】3.2:QGIS如何打开ArcGIS创建的个人数据库(MDB)?

    文章目录 1. 下载并安装Microsoft Access 2010数据库引擎 2. 配置系统环境变量 3. 打开mdb数据库 [相关阅读] [QGIS入门实战精品教程]005:QGIS如何打开Arc ...

  3. 【QGIS入门实战精品教程】3.3:QGIS如何打开ArcGIS创建的文件数据库(GDB)?

    在行业应用中,GIS地理空间数据往往存储在ESRI ArcGIS的文件地理数据库(File GeodataBase),因此,ArcGIS与QGIS的数据交互.共享就显得非常重要.QGIS3可以直接打开 ...

  4. ArcGIS创建企业级地理数据库

    通过ArcGIS创建一个地理数据库至SQLServer数据库中. 1.需要有一个登陆ArcGIS的管理员账号,可以是sa,必须要有足够的权限:1)允许连接到数据库引擎  2)允许远程连接服务器 2.使 ...

  5. 【ARCGIS创建中国南海诸岛及九段线小图框】

    ARCGIS创建中国南海诸岛及九段线小图框: 提示:ARCGIS:Fixed Extend: 下载中国矢量地图: 参考下载1:九段线 参考下载2:南海诸岛到及九段线 注:九段线为什么可以10段,不应该 ...

  6. ajax创建iexmlhttp,AJAX 常用函数创建XMLHTTP对象,区别IE,Mozilla浏览器

    AJAX 常用函数创建XMLHTTP对象,区别IE,Mozilla浏览器的函数,网上有很多创建XMLHTTP对象,区别IE,Mozilla浏览器的函数,这个比较不错,大家可以直接拿用了 functio ...

  7. ArcGIS创建图层包:分享图层数据以及符号

    ArcGIS创建图层包 如果你想单独把某一个图层的数据及其符号信息导出的话,可以使用ArcGIS创建图层包功能,这样别人不仅可以得到你的图层数据,同时也会得到你自己制作的符号信息(如图层的符号化.标注 ...

  8. 利用ArcGIS创建渔网计算渔网内土地利用占比划分中国北方农牧交错带

    依据土地利用数据,根据参考文献划分要求,利用ArcGIS创建渔网对地物进行重分类,划分农业带.牧业带以及农牧交错带. 参考文献: 史文娇;刘奕婷;石晓丽,气候变化对北方农牧交错带界线变迁影响的定量探测 ...

  9. ArcGIS创建地理处理包!让你制作的工具自由分享

    喜欢就关注我们吧! 0 前言 当用模型做好工具 分享到其他电脑 出现的模型不可用的情况 就如我们上期制作分享 的提取四至点的工具 有这个红叉的情况 因为他用到了子模型 所以发生路径不一致的情况 只要编 ...

最新文章

  1. BitPay商家现在可以通过比特币现金(BCH)获得结算
  2. Python 进阶_OOP 面向对象编程_组合与继承
  3. Python面试题 :计算列表中出现最多次的字符
  4. python爬取的内容不是中午_大年初六中午,全国各区县哪里最冷?
  5. 想自学一种编程语言,各种编程语言都有什么区别?
  6. ScheduledThreadPoolExecutor部分源码学习
  7. 计算机网络(三)物理层
  8. PS、PR素材资源网站
  9. 电子技术_常见贴片电阻封装功率和标称值
  10. 普通高中信息技术课程标准( 必修 选修科目)
  11. 扬州鉴真国际半程马拉松
  12. [mac]添加系统自带辞典或下载的词典包
  13. 《Qt 学习之路 2》
  14. 100个python算法超详细讲解:存钱
  15. 【网络安全】上网行为管理
  16. centos系统 用kubeadm 搭建高可用k8s集群
  17. VirtualBox 5.1.24神更新
  18. 小米8se刷android7系统,小米8SE Flyme8系统刷机包(系统刷机最新固件升级包)
  19. 用随机函数实现一组双色球号码
  20. Linux第四章:1.Linux关机、重启、休眠、切换用户命令大全

热门文章

  1. (94)FPGA 两个触发器时序分析模型中,涉及到哪些参数?,面试必问(十八)(第19天)
  2. STM32移植LWIP
  3. I帧、P帧和B帧的特点
  4. linux 权限mod,linux学习—权限管理
  5. ctl命令 usb_USB入门系列之六 —— USB设备的枚举过程
  6. electron 打印需要联网的吗?_英语四六级考试准考证怎么打印,需要彩打吗
  7. K2评分方法理解实例
  8. 拓展Revit的方式
  9. Spring 阶段总结
  10. NGINX---一次阿里云宝塔开发flask经历