以下概念及函数均在在Oracle中配置地理数据库(sde库)中使用:

一.空间类型

1.概念:存储几何数据的数据类型。所有空间信息均存储在空间列中;不存在其他的要素表。将空间信息包含在一个字段中使得在 ArcGIS 之外访问空间数据变得更加容易。

2.用途:空间类型具有关联的函数或方法,可用于通过结构化查询语言 (SQL) 访问和操作数据

二.SRID

1.概念:空间参考标识符, 是与特定坐标系、容差和分辨率关联的唯一标识符。

2.用途:SRID 的填充方式及其所示含义取决于存储数据所用的数据库。

某些数据库和空间类型(如 PostgreSQL 中的 PostGIS 几何或 SQL Server 中的地理类型)使用预定义的 EPSG 代码子集,只可使用具有这些 SRID 的空间参考。

其他情况下(如 Oracle、PostgreSQL、IBM DB2 和 Informix 中的 ST_Geometry 类型)可使用具有 Esri 定义的 SRID 的空间参考。

三.空间参考

1.概念:包括一个 x、y、z 值的坐标系。在企业级地理数据库中,空间参考还包含容差值和分辨率值。所有这些信息组合在一起将有助于指示平面地图上的形状表示地球上的哪个位置。

2.应用:在企业级地理数据库(以及已安装 ST_Geometry 类型的 Oracle 或 PostgreSQL 数据库)中,所有空间参考系统都存储在地理数据库系统表中。

数据库和存储类型 地理数据库系统表

Oracle (ST_Geometry) sde.st_spatial_references

四.ST_Geometry 存储类型

1.概念:

ST_Geometry是一种用户定义数据类型 (UDT),使用该数据类型可定义存储空间数据的列。本身是抽象的、无法实例化的超类。但其子类可以实例化。实例化的数据类型是可定义为表列的数据类型,并且其类型值插入表列之中。虽然可以将列定义为类型 ST_Geometry,但是您无法将 ST_Geometry 值插入此列,因为无法对 ST_Geometry 进行实例化。相反,您可以插入子类值。

2.结构图:

3.子类

ST_Geometry 的子类分为两类:基础几何子类和同类集合子类。基础几何包括 ST_Point、ST_LineString 和 ST_Polygon,而同类集合包括 ST_MultiPoint、ST_MultiLineString 和 ST_MultiPolygon。与名称的含义一致,同类集合是基础几何的集合。除了共享基础几何属性之外,同类集合还具有某些自身的属性。

如下图:

4.常用函数

创建表community:

CREATE TABLE community(id integer,shape sde.st_geometry);

4.1 ST_Geometry: 

定义:通过熟知文本表示构造几何。

对于点线面:

语法:sde.st_geometry (wkt clob, srid integer)

示例:

INSERT INTO community(id, shape) VALUES (1,sde.st_geometry ('point (1 2)', 0));

INSERT INTO community(id, shape) VALUES (2,sde.st_geometry (1,2,null,null,0));

INSERT INTO community(id, shape) VALUES (3,sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 0));

INSERT INTO community(id, shape) VALUES (4,sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 0));

4.2 ST_Point:

定义:以熟知文本对象或坐标和空间参考 ID 作为输入参数,返回 ST_Point 类型的对象。

语法:

sde.st_point (wkt clob, srid integer)

sde.st_point (x number, y number, srid integer)

sde.st_point (x number, y number, m number, srid integer)

sde.st_point (x number, y number, z number, srid integer)

sde.st_point (x number, y number, z number, m number, srid integer)

在 INSERT 语句将 ST_Point 几何插入到 shape列之前,首先用 ST_Point 函数将点坐标转换为 ST_Point 几何。

示例:

INSERT  INTO  community  VALUES (1,sde.st_point (10.01, 20.03, 0));

4.3 ST_PointFromText:

定义:在Oracle中,ST_PointFromText 以点类型的熟知文本表示和空间参考 ID 作为输入参数,返回点对象。

语法:

sde.st_pointfromtext (wkt varchar2, srid integer)

在调用 INSERT 语句将点插入到 shape 列之前,首先使用 ST_Point 函数将点文本坐标转换为点格式。

示例:

INSERT  INTO  community  VALUES (1,sde.st_pointfromtext ('point (10.01 20.03)', 0));

4.4 ST_LineString:

定义:是一个通过熟知文本表示构造线串的存取函数。

语法:sde.st_linestring (wkt clob, srid integer)

示例:

INSERT  INTO  community (id, shape) VALUES (1,sde.st_linestring ('linestring (750 150, 750 750)', 0));

4.5 ST_LineFromText:

定义:以 ST_LineString 类型的熟知文本表示和空间参考 ID 作为输入,并返回 ST_LineString 类型的对象。

语法:sde.st_linefromtext (wkt clob, srid integer)

示例:INSERT  INTO community  VALUES (1,sde.st_linefromtext ('linestring (10.01 20.03, 35.93 19.04)', 0));

4.6 ST_Polygon:

定义:存取器函数以熟知文本 (WKT) 表示和空间参考 ID (SRID) 作为输入参数,并生成 ST_Polygon 类型的对象。

语法:

sde.st_polygon (wkt clob, srid integer)

示例:

INSERT  INTO  community  VALUES ( 1, sde.st_polygon ('polygon ((10.01 20.03, 20.94 21.34, 35.93 10.04, 10.01 20.03))', 0));

4.7 ST_PolyFromText:

定义:以熟知文本表示和空间参考 ID 作为输入参数,返回 ST_Polygon 类型的对象。

语法:

sde.st_polyfromtext (wkt clob, srid integer)

示例:

INSERT  INTO community  VALUES (1,sde.st_polyfromtext ('polygon ((10.01 20.03, 10.52 40.11, 30.29 41.56,31.78 10.74, 10.01 20.03))', 0));

4.8 ST_SRID:

定义:以 ST_Geometry 对象作为输入参数,返回其空间参考 ID

语法:

sde.st_srid (shape sde.st_geometry)

示例:

SELECT sde.st_srid (shape) SRID FROM community ;

4.1 ST_AsText:

定义:获取一个 ST_Geometry 对象,然后返回其可识别的文本表示。

语法:sde.st_astext (shape sde.st_geometry)

示例:

SELECT  id, sde.st_astext (shape) points FROM community;

ArcGis中地理数据库(sde)中概念及常见函数的更多相关文章

  1. 解决ArcGIS中因SDE或数据库配置问题而导致服务宕掉的一种思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 最近连续有两个项目现场出现了AGS服务荡掉的问题,一个是通州 ...

  2. 关于ArcGIS API for JavaScript中basemap的总结介绍(一)

    实际上basemap这个概念并不只在arcgis中才有,在Python中有一个matplotlib basemap toolkit(https://pypi.python.org/pypi/basem ...

  3. sde中导入shp报错

    在向sde中的数据集导入shp数据,发现报如下错误:

  4. WebLogic中的一些基本概念

    WebLogic中的一些基本概念   WebLogic 中的基本概念 上周参加了单位组织的WebLogic培训,为了便于自己记忆,培训后,整理梳理了一些WebLogic的资料,会陆续的发出来,下面是一 ...

  5. Activity中UI框架基本概念

    Activity中UI框架基本概念 Activity 是应用程序的基本组成部分,提供了可视的界面,UI容器, 与用户进行交互: 具体Acitivity是怎么样显示这些事视图元素以及响应事件交互的. 一 ...

  6. 往sde中导入要素类报错000732

    sde可以成功连接,可以在Server中注册. 但是向sde中导入要素类报错000732,如图所示. 点击红色圆圈提示 ERROR 000732. 将路径修改为绝对路径即可,如下图所示.

  7. ArcGIS API for Silverlight中加载Google地形图(瓦片图)

    原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS ...

  8. Z-Stack协议中几个重要概念的理解

    1. 原语     ZigBee设备在工作时,各种不同的任务在不同的层次上执行,通过层的服务,完成所要执行的任务.每一层的服务主要完成两种功能:根据它的下层服务要求,为上层提供相应的服务:另一咱是根据 ...

  9. C#中一些易混淆概念总结

    C#中一些易混淆概念 这几天一直在复习C#基础知识,过程中也发现了自己以前理解不清楚和混淆的概念.现在给大家分享出来我的笔记: 一,.NET平台的重要组成部分都是有哪些 1)FCL (所谓的.NET框 ...

  10. 用人类社会工程学对C语言中的一些基本概念的剖析与理解

    最近在学C语言程序设计时总是遇到一些概念理解上的不清晰与混乱的地方,在一次偶然间想到了以前看过的一部电影<我是谁,没有一个系统是安全的>,里面的主角用社会工程学的想法结合黑客知识化险为夷, ...

随机推荐

  1. SparkSQL JDBC和JDBCServer区别

    注意SparkSQL JDBC和SparkSQL JDBCSever是完全两种不同的场景. SparkSQL JDBC SparkSQL可以使用JDBC的方式访问其他数据库,和普通非spark程序访问 ...

  2. iptables基础实战练习

    目录: 一.基本规则练习 二.SNAT源地址转移 三.DNAT目标地址转移 一.基础规则练习 (1) 放行ssh (端口:22) 1 iptables -A INPUT -d 192.168.42.1 ...

  3. 系统UISearchController详解

    原文链接:https://www.jianshu.com/p/aa9a153a5b58

  4. java 网络通信协议、UDP与TCP

    一 网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定 的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通 ...

  5. 2020-04-14:mysql原子性和持久性怎么保证

    1.Mysql怎么保证一致性的? OK,这个问题分为两个层面来说. 从数据库层面,数据库通过原子性.隔离性.持久性来保证一致性.也就是说ACID四大特性之中,C(一致性)是目的,A(原子性).I(隔离 ...

  6. C#LeetCode刷题之#383-赎金信(Ransom Note)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3937 访问. 给定一个赎金信 (ransom) 字符串和一个杂志 ...

  7. 【luogu1709】小B的询问 - 莫队

    题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重 ...

  8. 虚拟化技术之kvm管理工具virsh常用基础命令(二)

    上一篇博客我们主要聊了下virsh 管理kvm虚拟机的命令相关用法和说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13508231.html:今天我们来继 ...

  9. LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式

    作者:HelloGitHub-小鱼干 在众多的诸如阿里.腾讯等大厂之中,最看中面试者刷题技能的大概要数有"链表厂"之称的字节跳动了.作为一个新晋大厂,字节跳动以高薪.技术大佬云集吸 ...

  10. PAT 2-07. 素因子分解(20)

    题目链接:http://www.patest.cn/contests/ds/2-08 题目意思:long int范围内的正整数N进行素因子分解. 直接整除即可,不需要素数筛选 代码如下: #inclu ...