Oracle spatial创建空间数据的字段详解
来源:互联网 发布:软件开发全面质量管理 编辑:程序博客网 时间:2024/06/10 03:34
Oracle spatial
Oracle spatial主要通过sdo_geometry来储存空间信息,主要有五个参数
SDO_GTYPE number
SDO_SRID number
SDO_POINT SDO_POINT_TYPE
SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY
SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY
SDO_GTYPE 是一个由四个数字组成的数值型参数,形式为dltt。其中,
d的取值为2,3,4分别代表所存空间实体的维度
l为一个三维LRS几何实体定义了一个线性参考度量维度,也就是说只有在三维或者四维的地理实体中才需要定义这个度量,对于没有LRS的地理实体,该值默认为0.
tt 主要用来定义地理实体的类型,现有的类型是从00-07,08-99为Oracle的保留字段。
00
未知的地理数据类型
01
单个的点
02
单条的线
03
单个的面
04
集合(可以包含除此类型之外的所有其他类型)
05
点集/多点
06
多条线
07
多个面
所以对现在常用的数据类型,2001表示一个点,2002表示一个面,2003表示一个面。
每一列空间数据必须用来存放同一维度的数据。
SDO_SRID 用来定义空间数据的投影信息,如果为null,表示没有空间参照坐标系,如果不为空,那么必须是系统表SDO_COORD_REF_SYS中SRID列中的一个值,也就是说必须是由Oracle定义的某一种空间参考坐标系,SRID信息必须与该表定义的空间元数据的投影信息一致。
4326,WGS-84空间参考系,坐标单位是经纬度
54004,World Mercator空间参考系,坐标单位是米
SDO_POINT 用来定义点对象类型,属性有三个(X,Y,Z)均为数值类型,如果SDO_ELEM_INFO与SDO_ORDINATES两个字段均为空,那么SDO_POINT内储存的X,Y信息就会被认为是一个点类型的几何实体,否则这个字段会被系统自动忽略。
SDO_ELEM_INFO 这个字段存储的信息主要用来解释存储在SDO_ORDINATES中坐标的属性。字段内共有三个参数,SDO_STARTING_OFFSET,SDO_ETYPE,SDO_INTERPRETATION。
SDO_STARTING_OFFSET表示SDO_ORDINATES数组中所存放元素坐标的起点,如果SDO_ORDINATES数组中存放了一个元素,该值为1。举例说明,SDO_ORDINATES存放的地理信息如下,
INSERT INTO cola_markets VALUES(
10,
'polygon_with_hole',
SDO_GEOMETRY(
2003, -- two-dimensional polygon
NULL,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,1, 19,2003,1), -- polygon with hole
SDO_ORDINATE_ARRAY(2,4, 4,3, 10,3, 13,5, 13,9, 11,13, 5,13, 2,11, 2,4,
7,5, 7,10, 10,10, 10,5, 7,5)
)
);
SDO_ORDINATES数组中存放的是一个如下图所示的多边形,一共有两个面状几何实体构成,第一个几何实体默认从第一位开始,第二个几何实体从第19个数字开始算起,所以SDO_ELEM_INFO数组中的信息如上所示,
SDO_ELEM_INFO_ARRAY(1,1003,1, 19,2003,1)
SDO_ETYPE 与 SDO_INTERPRETATION共同确定几何实体的详细组成,描述的是SDO_ORDINATE_ARRAY中坐标中的信息。
SDO_ETYPE
SDO_INTERPRETATION
代表含义
0
任意数值
表示不被Oracle支持的数据
1
1
点
1
0
原点类型
1
n
n个点组成的点集
2
1
直线
2
2
有弯曲角度的线
1003,or2003
1
基础面,每个边都是直线类型
1003or2003
2
面,边是由有弯曲的线构成的
1003or2003
3
矩形,给定左下角,右上角,两个point
1003or2003
4
圆,由三个不同的点描述
4
n>1
混合线型,一条线由直线与曲线共同组成的
1005or2005
n>1
混合面,由直线与曲线组成的面
SDO_ORDINATES 存放坐标信息的数组
SDO_ORDINATE_ARRAY(10,10, 10,14, 6,10, 14,10)
- Oracle spatial创建空间数据的字段详解
- oracle spatial - 空间字段初探
- oracle spatial 空间数据的获取
- hibernate spatial - 保存oracle具有空间字段的表
- oracle spatial 创建空间字段索引 创建字段索引 完善SQL语句实例
- oracle spatial 创建空间字段索引 创建字段索引 完善SQL语句实例二
- Oracle Spatial空间分析详解
- Arcgis 访问Oracle spatial空间数据
- 关于Oracle Spatial 的字段SDO_GEOMETRY
- Oracle Spatial的空间查询,代码操作
- Oracle Spatial空间函数
- Oracle Spatial空间类型
- NET下基于OO4O,FME,ODP.NET的Oracle Spatial空间数据读取操作
- Oracle Spatial中上载GIS空间数据方法研究
- Oracle spatial 空间数据SQL查询操作相关实例
- Spring+SpringMVC+hibernate spatial+oracle spatial 映射存储Geomety空间数据过程记录
- Oracle Spatial详解
- Oracle Spatial详解
- Oracle数据库新创建实例会遇到的有关监听的问题
- 软件内存泄露的原因
- Kotlin学习笔记(二)——示例篇一
- 区间最小值
- c++在vs2010中操作Mysql的讲解
- Oracle spatial创建空间数据的字段详解
- 简述什么是值传递,什么是地址传递,两者区别是什么
- IBM Watson 问答流程简介
- Java基础:接口和抽象类
- Android开机流程跟踪
- PHPStorm下XDebug配置
- 工程目录
- JQuery中ajax,get方法在ashx,aspx,asmx中的使用
- OCIlib的几个函数的执行效率(附上pro*c的性能对比)