Arcgis创建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。
Arcgis创建SDE_Geometry、SDO_Geometry的区别【转】的更多相关文章
- Arcgis创建SDE_Geometry、SDO_Geometry的区别
先初略的了解下SDE_Geometry和SDO_Geometry的区别: 1. SDO_GEOMETRY Oracle Spatial在MDSYS模式下定义了一系列几何类型.函数来支持空间数据的存储和 ...
- 【转】ArcGIS 创建切片缓存方法工具总结
ArcGIS 创建切片缓存方法工具总结 http://wenku.baidu.com/link?url=Bm8AkmcJBzfiyat9N_Me6vlfSHEDCC_D1qBk5IB4X4CIDeKI ...
- 【转】VC 模式对话框和非模式对话框的创建,销毁和区别
原文网址:http://blog.csdn.net/mycaibo/article/details/6002151 VC 模式对话框和非模式对话框的创建,销毁和区别 在WIN32中,模式对话框的创 ...
- js 创建数组方法以及区别
示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...
- ArcGIs创建企业级数据库
本文主要描述ArcGIs创建企业级数据库. 目标:创建企业级地理数据库,使用ArcMap通过SDE引擎 与Oracle交互数据,创建完成后将本地的mdb数据库中数据迁移到Oracle的地理数据库当中. ...
- arcgis创建postgre企业级数据库
什么是企业级地理数据库? 企业级地理数据库(ArcSD Enterprise,sde)是和 arcGIS 套件集成程度最高的地理数据库:创建时需要用到安装 arcGIS Server 时的 [ecp ...
- ArcGIS创建tpk切片缓存
一. 背景知识 1. tpk是什么? 从地图或底图生成切片,并将切片进行打包从而创建单个压缩的 .tpk 文件.切片包(.tpk)是在地图或栅格数据集中能作为 Web 切片或 Web 高程图层发布的一 ...
- 四、用“”或构造函数创建Java的String区别
在Java中,一个字符串可以通过下面两种方法创建. String x = "abc"; String y = new String("abc"); 用双引号创建 ...
- ArcGIS创建要素类
在使用ARCGIS软件进行工作时,免不了要建立地理数据库和要素类之类的.一下是我创建文件地理数据库并在数据库中创建要素类写相关步骤: 1.启动软件,可以使用ARCCatalog直接进行创建也可以使用A ...
随机推荐
- 献给所有从事IT行业拥有梦想的英语渣们
本文适合读者:从小到大英语都不好,如今选择IT行业需要重拾英语追寻梦想的人,英语大神们请绕行.. 目录 一.背景介绍 二.明确学习目标 2.1 英文文法 2.2 词汇量 三.题外话 3.1 关于本文 ...
- 轻松自动化---selenium-webdriver(python) (九)
本节重点: 上传文件 文件上传操作也比较常见功能之一,上传功能没有用到新有方法或函数,关键是思路. 上传过程一般要打开一个本地窗口,从窗口选择本地文件添加.所以,一般会卡在如何操作本地窗口添加上传文件 ...
- Testing - 测试基础 - 用例
测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...
- Lining.js - 为CSS提供 ::nth-Line 选择器功能
在CSS中,我们使用 ::first-line 选择器来给元素第一行内容应用样式.但目前还没有像 ::nth-line.::nth-last-line 甚至 ::last-line 这样的选择器.实际 ...
- AsyncTask和Handler对比(转)
1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可 ...
- 在SQL Server 2016里使用查询存储进行性能调优
作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在 ...
- solr的suggest模块
solr的suggest模块 solr有个suggest模块,用来实现下拉提醒功能,就是输入了一个文本之后,进行文本建议查找的功能. suggest请求的url http://localhost:89 ...
- C#抽象类
抽象类使用abstract修饰符声明: 不能创建抽象类的实例: 抽象类只能用作其他类的基类: 抽象类中可以包含抽象成员和普通的非抽象成员: 抽象类自己可以派生自另外一个抽象类: 任何派生自抽象类的[类 ...
- ASP.NET Core WebAPI 开发-新建WebAPI项目
ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...
- PHP多种形式发送邮件
1. 使用 mail() 函数 没什么好讲的,就是使用系统自带的smtp系统来发送,一般是使用sendmail来发.这个按照各个系统不同而定.使用参考手册. 2. 使用管道的形式 昨天刚测试成功,使用 ...