sdo_lrs包

Subprograms for Creating and Editing Geometric Segments

1、SDO_LRS.DEFINE_GEOM_SEGMENT(过程)

语法:

SDO_LRS.DEFINE_GEOM_SEGMENT(

geom_segment IN OUT SDO_GEOMETRY

[, start_measure IN NUMBER,

end_measure IN NUMBER]);

or

SDO_LRS.DEFINE_GEOM_SEGMENT(

geom_segment IN OUT SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY

[, start_measure IN NUMBER,

end_measure INNUMBER]);

功能:根据起始点和终止点测量值计算出没有测量的点

例子:

-- Testthe LRS procedures.

DECLARE

geom_segmentSDO_GEOMETRY;

line_stringSDO_GEOMETRY;

dim_arraySDO_DIM_ARRAY;

result_geom_1SDO_GEOMETRY;

result_geom_2SDO_GEOMETRY;

result_geom_3SDO_GEOMETRY;

BEGIN

SELECT a.route_geometry intogeom_segment FROM lrs_routes a

WHERE a.route_name = 'Route1';

SELECT m.diminfo into dim_array from

user_sdo_geom_metadatam

WHERE m.table_name = 'LRS_ROUTES'AND m.column_name = 'ROUTE_GEOMETRY';

--Define the LRS segment for Route1. This will populate any null measures.

-- Noneed to specify start and end measures, because they are already defined in thegeometry.

SDO_LRS.DEFINE_GEOM_SEGMENT (geom_segment, dim_array);

SELECT a.route_geometry INTOline_string FROM lrs_routes a

WHERE a.route_name = 'Route1';

--Split Route1 into two segments.

SDO_LRS.SPLIT_GEOM_SEGMENT(line_string,dim_array,5,result_geom_1,result_geom_2);

--Concatenate the segments that were just split.

result_geom_3 := SDO_LRS.CONCATENATE_GEOM_SEGMENTS(result_geom_1,dim_array,

result_geom_2,dim_array);

--Update and insert geometries into table, to display later.

UPDATE lrs_routes a SET a.route_geometry = geom_segment

WHERE a.route_id = 1;

INSERTINTO lrs_routes VALUES(

11,

'result_geom_1',

result_geom_1

);

INSERTINTO lrs_routes VALUES(

12,

'result_geom_2',

result_geom_2

);

INSERTINTO lrs_routes VALUES(

13,

'result_geom_3',

result_geom_3

);

END;

2、SDO_LRS.REDEFINE_GEOM_SEGMENT(过程)

语法:

SDO_LRS.REDEFINE_GEOM_SEGMENT(

geom_segment IN OUT SDO_GEOMETRY

[, start_measure IN NUMBER,

end_measure IN NUMBER]);

or

SDO_LRS.REDEFINE_GEOM_SEGMENT(

geom_segment IN OUT SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY

[, start_measure IN NUMBER,

end_measure INNUMBER]);

功能:重新定义几何体(可进行单位转换)

例子:

--Redefine geometric segment to "convert" miles to kilometers

DECLARE

geom_segmentSDO_GEOMETRY;

dim_arraySDO_DIM_ARRAY;

BEGIN

SELECT a.route_geometry intogeom_segment FROM lrs_routes a WHERE a.route_name = 'Route1';

SELECT m.diminfo into dim_array from user_sdo_geom_metadata m WHEREm.table_name = 'LRS_ROUTES'AND m.column_name = 'ROUTE_GEOMETRY';

--"Convert" mile measures to kilometers (27 * 1.609 = 43.443).

SDO_LRS.REDEFINE_GEOM_SEGMENT (geom_segment,

dim_array,

0, -- Zerostarting measure: LRS segment starts at start of route.

43.443); -- Endof LRS segment. 27 miles = 43.443 kilometers.

--Update and insert geometries into table, to display later.

UPDATE lrs_routes a SET a.route_geometry = geom_segment WHEREa.route_id = 1;

END;

3、SDO_LRS.CLIP_GEOM_SEGMENT

语法:

SDO_LRS.CLIP_GEOM_SEGMENT(

geom_segment IN SDO_GEOMETRY,

start_measure IN NUMBER,

end_measure IN NUMBER,

tolerance IN NUMBER DEFAULT 1.0e-8

) RETURN SDO_GEOMETRY;

or

SDO_LRS.CLIP_GEOM_SEGMENT(

geom_segment IN SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY,

start_measure IN NUMBER,

end_measure IN NUMBER

) RETURN SDO_GEOMETRY;

功能:截取指定的一段

例子:

-- Clipa piece of Route1.

SELECT SDO_LRS.CLIP_GEOM_SEGMENT(route_geometry, 5, 10) FROM lrs_routesWHERE route_id = 1;

4、SDO_LRS.DYNAMIC_SEGMENT

语法:

SDO_LRS.DYNAMIC_SEGMENT(

geom_segment IN SDO_GEOMETRY,

start_measure IN NUMBER,

end_measure IN NUMBER,

tolerance IN NUMBER DEFAULT 1.0e-8

) RETURN SDO_GEOMETRY;

or

SDO_LRS.DYNAMIC_SEGMENT(

geom_segment IN SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY,

start_measure IN NUMBER,

end_measure IN NUMBER

) RETURNSDO_GEOMETRY;

用法与SDO_LRS.CLIP_GEOM_SEGMENT一样

5、SDO_LRS.CONCATENATE_GEOM_SEGMENTS

语法:

SDO_LRS.CONCATENATE_GEOM_SEGMENTS(

geom_segment_1 INSDO_GEOMETRY,

geom_segment_2 INSDO_GEOMETRY,

tolerance IN NUMBER DEFAULT 1.0e-8

) RETURN SDO_GEOMETRY;

or

SDO_LRS.CONCATENATE_GEOM_SEGMENTS(

geom_segment_1 INSDO_GEOMETRY,

dim_array_1 INSDO_DIM_ARRAY,

geom_segment_2 INSDO_GEOMETRY,

dim_array_2 INSDO_DIM_ARRAY

) RETURNSDO_GEOMETRY;

功能:连接线串,例子见1

6、SDO_LRS.OFFSET_GEOM_SEGMENT

语法:

SDO_LRS.OFFSET_GEOM_SEGMENT(

geom_segment IN SDO_GEOMETRY,

start_measure IN NUMBER,

end_measure IN NUMBER,

offset IN NUMBER,

tolerance IN NUMBER DEFAULT 1.0e-8

[, unit IN VARCHAR2]

) RETURN SDO_GEOMETRY;

or

SDO_LRS.OFFSET_GEOM_SEGMENT(

geom_segment IN SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY,

start_measure IN NUMBER,

end_measure IN NUMBER,

offset IN NUMBER

[, unit IN VARCHAR2]

) RETURNSDO_GEOMETRY;

功能:指定的线段内进行偏移

例子:

SELECT SDO_LRS.OFFSET_GEOM_SEGMENT(a.route_geometry, m.diminfo,5, 10, 2)

FROM lrs_routes a, user_sdo_geom_metadata m

WHERE m.table_name = 'LRS_ROUTES'

AND m.column_name = 'ROUTE_GEOMETRY'

AND a.route_id = 1;

7、SDO_LRS.SPLIT_GEOM_SEGMENT(过程)

语法:

SDO_LRS.SPLIT_GEOM_SEGMENT(

geom_segment IN SDO_GEOMETRY,

split_measure IN NUMBER,

segment_1 OUT SDO_GEOMETRY,

segment_2 OUT SDO_GEOMETRY);

or

SDO_LRS.SPLIT_GEOM_SEGMENT(

geom_segment IN SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY,

split_measure IN NUMBER,

segment_1 OUT SDO_GEOMETRY,

segment_2 OUT SDO_GEOMETRY);

功能:将一个几何体分为两个

例子见1

8、SDO_LRS.RESET_MEASURE(过程)

语法:

SDO_LRS.RESET_MEASURE(

geom_segment IN OUT SDO_GEOMETRY

[, dim_array INSDO_DIM_ARRAY]);

功能:将起始点到终止点的测量值都清空

例子:

--Reset geometric segment measures.

DECLARE

geom_segmentSDO_GEOMETRY;

BEGIN

SELECT a.route_geometry intogeom_segment FROM lrs_routes a

WHERE a.route_name = 'Route1';

SDO_LRS.RESET_MEASURE(geom_segment);

--Update and insert geometries into table, to display later.

UPDATE lrs_routes a SET a.route_geometry = geom_segment

WHERE a.route_id = 1;

END;

9、SDO_LRS.SET_PT_MEASURE

语法:

SDO_LRS.SET_PT_MEASURE(

geom_segment IN OUT SDO_GEOMETRY,

point IN SDO_GEOMETRY,

measure IN NUMBER) RETURN VARCHAR2;

or

SDO_LRS.SET_PT_MEASURE(

geom_segment IN OUT SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY,

point IN SDO_GEOMETRY,

pt_dim_array IN SDO_DIM_ARRAY,

measure IN NUMBER) RETURN VARCHAR2;

or

SDO_LRS.SET_PT_MEASURE(

point IN OUT SDO_GEOMETRY,

measure IN NUMBER) RETURN VARCHAR2;

or

SDO_LRS.SET_PT_MEASURE(

point IN OUT SDO_GEOMETRY,

dim_array IN SDO_DIM_ARRAY,

measure IN NUMBER) RETURN VARCHAR2;

功能:将测量值设为一个特定的点

-- Setthe measure value of point 8,10 to 20 (originally 22).

DECLARE

geom_segmentSDO_GEOMETRY;

dim_arraySDO_DIM_ARRAY;

resultVARCHAR2(32);

BEGIN

SELECT a.route_geometry intogeom_segment FROM lrs_routes a

WHERE a.route_name = 'Route1';

SELECT m.diminfo into dim_array from

user_sdo_geom_metadatam

WHERE m.table_name = 'LRS_ROUTES'AND m.column_name = 'ROUTE_GEOMETRY';

-- Setthe measure value of point 8,10 to 20 (originally 22).

result := SDO_LRS.SET_PT_MEASURE (geom_segment,

SDO_GEOMETRY(3301, NULL, NULL,

SDO_ELEM_INFO_ARRAY(1, 1, 1),

SDO_ORDINATE_ARRAY(8, 10, 22)),

20);

--Display the result.

DBMS_OUTPUT.PUT_LINE('Returned value = ' || result);

END;

10、SDO_LRS.REVERSE_MEASURE

11、SDO_LRS.TRANSLATE_MEASURE

12、SDO_LRS.REVERSE_GEOMETRY

外环应是逆时针的,内环应是顺时针的。若不对可用该函数进行修正。

SELECT SDO_LRS.REVERSE_GEOMETRY(a.gwm_geometry, m.diminfo)

FROM p_street_area a, user_sdo_geom_metadata m

WHERE m.table_name = 'P_STREET_AREA'

AND m.column_name = 'GWM_GEOMETRY'

AND a.id = 8;

13、SDO_LRS.VALID_GEOM_SEGMENT

14、SDO_LRS.VALID_LRS_PT

15、SDO_LRS.VALID_MEASURE

16、SDO_LRS.CONNECTED_GEOM_SEGMENTS

17、SDO_LRS.GEOM_SEGMENT_LENGTH

18、SDO_LRS.GEOM_SEGMENT_START_PT

19、SDO_LRS.GEOM_SEGMENT_END_PT

20、SDO_LRS.GEOM_SEGMENT_START_MEASURE

21、SDO_LRS.GEOM_SEGMENT_END_MEASURE

22、SDO_LRS.GET_MEASURE

23、SDO_LRS.GET_NEXT_SHAPE_PT

24、SDO_LRS.GET_NEXT_SHAPE_PT_MEASURE

25、SDO_LRS.GET_PREV_SHAPE_PT

26、SDO_LRS.GET_PREV_SHAPE_PT_MEASURE

27、SDO_LRS.IS_GEOM_SEGMENT_DEFINED

28、SDO_LRS.IS_MEASURE_DECREASING

29、SDO_LRS.IS_MEASURE_INCREASING

30、SDO_LRS.IS_SHAPE_PT_MEASURE

31、SDO_LRS.MEASURE_RANGE

32、SDO_LRS.MEASURE_TO_PERCENTAGE

33、SDO_LRS.PERCENTAGE_TO_MEASURE

34、SDO_LRS.LOCATE_PT

35、SDO_LRS.PROJECT_PT

36、SDO_LRS.FIND_LRS_DIM_POS

37、SDO_LRS.FIND_MEASURE

38、SDO_LRS.FIND_OFFSET

39、SDO_LRS.VALIDATE_LRS_GEOMETRY

Subprograms for Converting Geometric Segments

40、SDO_LRS.CONVERT_TO_LRS_DIM_ARRAY

41、SDO_LRS.CONVERT_TO_LRS_GEOM

42、SDO_LRS.CONVERT_TO_LRS_LAYER

43、SDO_LRS.CONVERT_TO_STD_DIM_ARRAY

44、SDO_LRS.CONVERT_TO_STD_GEOM

45、SDO_LRS.CONVERT_TO_STD_LAYER

Oracle Spacial(空间数据库)sdo_lrs包函数相关推荐

  1. Oracle Spacial(空间数据库)sdo_Geom包的函数

    sdo_Geom包的函数: SDO_GEOM (geometry) subprograms, except for thefollowing, which are supported for both ...

  2. oracle的空间数据库

    oracle的空间数据库: 2007-12-21 16:31:12 分类: Oracle 简单研究一下, 收藏, 详细内容看下面 [@more@] 1. 什么是oracle的空间数据库: oracle ...

  3. java oracle 流水号_Oracle生成流水号函数

    一.参考 1:日期范围上 smalldatetime的有效时间范围1900/1/1~2079/6/6 datetime的有效时间范围1753/1/1~9999/12/31 2:精准度上 smallda ...

  4. Go 学习笔记(22)— 并发(01)[进程、线程、协程、并发和并行、goroutine 启动、goroutine 特点,runtime 包函数]

    Go 语言通过编译器运行时( runtime ),从语言上支持了并发的特性. 虽然 Go 程序编译后生成的是本地可执行代码,但是这些可执行代码必须运行在Go 语言的运行时(Runtime )中.Go ...

  5. R语言广义线性模型函数GLM、(Model fit and regression diagnostics)、模型充分性评估方法、使用plot函数以及car包函数

    R语言广义线性模型函数GLM.(Model fit and regression diagnostics).模型充分性评估方法.使用plot函数以及car包函数 目录

  6. oracle字符串提取函数,oracle字符串分割和提取函数定义

    oracle字符串分割和提取函数定义 oracle字符串分割和提取 分割 create or replace function Get_StrArrayLength ( av_str varchar2 ...

  7. oracle和MySQL的日期函数_mysql与oracle的日期/时间函数小结

    前言 本文的日期/时间全部格式化为"2016-01-01 01:01:01"形式: MONITOR_TIME为数据库表字段: 字符串与日期/时间相互转换函数 Oracle 日期/时 ...

  8. Oracle数据库之多行函数

    oracle安装参照: Oracle数据库之安装教程 Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 ...

  9. oracle表 游标,Oracle游标表达式和表函数

    Oracle游标表达式是Oracle数据库中的重要概念,下面就为您详细介绍Oracle游标表达式和表函数方面的知识,供您参考学习之用. Oracle游标表达式(有时称为游标子队列)是 SQL 语言的一 ...

最新文章

  1. catia 如何提取cgr面_CATIA 创成式外形设计精品课程
  2. 口语学习Day6:今天聊聊国内安全还是国外安全?
  3. 关于Python中的self
  4. div 上禁止复制的css实现方法
  5. python 类型之 set
  6. 《阿凡达》2020再度观看观后感
  7. Angular2.x-主/细节组件
  8. Neither spark.yarn.jars nor spark.yarn.archive is set
  9. 利用Redis实现消息队列原理
  10. 计算机word基本知识选择题,2017计算机基础考试选择题「附答案」
  11. 新手坐高铁怎么找车厢_一个新手怎么做直播卖衣服?找对货源供应商成功一半...
  12. java中字节码_Java字节码执行图示
  13. matlab剩余寿命概率密度,分享关于评估设备剩余使用寿命的三种方法
  14. DNGuard HVM 专业版 v2.7 正式发布。
  15. Linux下c编程设置串口属性和读写串口操作说明总结
  16. Delphi调用C#类库.doc
  17. 线段树辅助——扫描线法计算矩形周长并(轮廓线)
  18. 路径中“./”、“../”、“/”代表的含义 路径相关知识点总结
  19. 选择粘贴性无html,用好Office的选择性粘贴
  20. 获取滚动条滚动距离兼容写法

热门文章

  1. 织梦网站木马生成一个php文件夹,dede织梦程序网站安全设置防范木马侵袭
  2. 检测中质量监督常见的数个问题
  3. PTA判断题总结(1)
  4. cocos creator 开发浅塘游戏(1) 软件安装
  5. isotope自动布局
  6. 计算机取证的相关案例,计算机取证实验报告(共9篇).doc
  7. 如何在 fibos 上创建快照和使用快照启动节点
  8. 将一组数组尽可能均匀的分成两堆,使两个堆中的数的和尽可能相等
  9. 项目经理怎么评估工时?
  10. 银联接口开发随笔(3)