1 PACKAGE sdo_lrs AUTHID current_user AS
2
3 --
4 --
5 -- functions/procedure for defining, creating and manipulating LRS geometric segments
6 --
7 --
8
9 --
10 -- define an LRS geometric segment, all measures will be automatically populated
11 --
12
13 PROCEDURE define_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
14 dim_array IN MDSYS.SDO_DIM_ARRAY,
15 start_measure IN NUMBER ,
16 end_measure IN NUMBER );
17
18
19 PROCEDURE define_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
20 dim_array IN MDSYS.SDO_DIM_ARRAY);
21
22
23
24
25 PROCEDURE define_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
26 start_measure IN NUMBER ,
27 end_measure IN NUMBER ,
28 tolerance IN NUMBER DEFAULT 1.0e-8);
29
30
31
32 PROCEDURE define_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
33 tolerance IN NUMBER DEFAULT 1.0e-8);
34
35
36
37
38 PROCEDURE define_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
39 dim_array IN MDSYS.SDO_DIM_ARRAY,
40 start_measure IN NUMBER ,
41 end_measure IN NUMBER );
42
43 PROCEDURE define_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
44 dim_array IN MDSYS.SDO_DIM_ARRAY);
45
46
47 PROCEDURE define_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
48 start_measure IN NUMBER ,
49 end_measure IN NUMBER ,
50 tolerance IN NUMBER DEFAULT 1.0e-8);
51
52 PROCEDURE define_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
53 tolerance IN NUMBER DEFAULT 1.0e-8);
54
55
56
57
58
59
60 --
61 -- create a new geometric segment by clipping the given geometric segment
62 --
63
64 FUNCTION clip_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
65 dim_array IN MDSYS.SDO_DIM_ARRAY,
66 start_measure IN NUMBER,
67 end_measure IN NUMBER)
68 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
69
70
71 FUNCTION clip_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
72 start_measure IN NUMBER,
73 end_measure IN NUMBER,
74 tolerance IN NUMBER DEFAULT 1.0e-8)
75 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
76
77
78
79
80 FUNCTION clip_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
81 dim_array IN MDSYS.SDO_DIM_ARRAY,
82 start_measure IN NUMBER,
83 end_measure IN NUMBER)
84 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
85
86
87 FUNCTION clip_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
88 start_measure IN NUMBER,
89 end_measure IN NUMBER,
90 tolerance IN NUMBER DEFAULT 1.0e-8)
91 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
92
93
94
95 --
96 -- split a geometric segment into two
97 --
98
99
100 PROCEDURE split_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
101 dim_array IN MDSYS.SDO_DIM_ARRAY,
102 split_measure IN NUMBER,
103 segment_1 OUT MDSYS.SDO_GEOMETRY,
104 segment_2 OUT MDSYS.SDO_GEOMETRY);
105
106
107 PROCEDURE split_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
108 split_measure IN NUMBER,
109 segment_1 OUT MDSYS.SDO_GEOMETRY,
110 segment_2 OUT MDSYS.SDO_GEOMETRY,
111 tolerance IN NUMBER DEFAULT 1.0e-8);
112
113
114
115 PROCEDURE split_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
116 dim_array IN MDSYS.SDO_DIM_ARRAY,
117 split_measure IN NUMBER,
118 segment_1 OUT MDSYS.SDO_GEOMETRY,
119 segment_2 OUT MDSYS.SDO_GEOMETRY);
120
121
122 PROCEDURE split_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
123 split_measure IN NUMBER,
124 segment_1 OUT MDSYS.SDO_GEOMETRY,
125 segment_2 OUT MDSYS.SDO_GEOMETRY,
126 tolerance IN NUMBER DEFAULT 1.0e-8);
127
128
129
130 --
131 -- concatenate two geometric segments into one
132 --
133
134 FUNCTION concatenate_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
135 dim_array_1 IN MDSYS.SDO_DIM_ARRAY,
136 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
137 dim_array_2 IN MDSYS.SDO_DIM_ARRAY)
138
139 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
140
141
142 FUNCTION concatenate_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
143 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
144 tolerance IN NUMBER DEFAULT 1.0e-8)
145
146 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
147
148
149
150
151 FUNCTION concatenate_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
152 dim_array_1 IN MDSYS.SDO_DIM_ARRAY,
153 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
154 dim_array_2 IN MDSYS.SDO_DIM_ARRAY)
155
156 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
157
158
159 FUNCTION concatenate_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
160 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
161 tolerance IN NUMBER DEFAULT 1.0e-8)
162
163 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
164
165
166
167
168
169 --
170 -- general segment scaling function
171 --
172
173 FUNCTION scale_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
174 dim_array IN MDSYS.SDO_DIM_ARRAY,
175 start_measure IN NUMBER,
176 end_measure IN NUMBER,
177 shift_measure IN NUMBER)
178 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
179
180
181 FUNCTION scale_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
182 start_measure IN NUMBER,
183 end_measure IN NUMBER,
184 shift_measure IN NUMBER,
185 tolerance IN NUMBER DEFAULT 1.0e-8)
186 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
187
188
189
190
191 --
192 --
193 -- LRS query functions/procedures
194 --
195 --
196
197 --
198 -- check if the given geometric segment is valid
199 --
200
201 FUNCTION valid_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
202 dim_array IN MDSYS.SDO_DIM_ARRAY)
203 RETURN VARCHAR2 PARALLEL_ENABLE;
204
205
206 FUNCTION valid_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY)
207 RETURN VARCHAR2 PARALLEL_ENABLE;
208
209
210
211 FUNCTION valid_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
212 dim_array IN MDSYS.SDO_DIM_ARRAY)
213 RETURN VARCHAR2 PARALLEL_ENABLE;
214
215
216 FUNCTION valid_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
217 RETURN VARCHAR2 PARALLEL_ENABLE;
218
219
220
221
222 --
223 -- check if the measure information of a given geometric segment is defined
224 -- the geom segment must be valid, (type, length, and no of dim, etc)
225 --
226
227 FUNCTION is_geom_segment_defined(geom_segment IN MDSYS.SDO_GEOMETRY,
228 dim_array IN MDSYS.SDO_DIM_ARRAY)
229 RETURN VARCHAR2 PARALLEL_ENABLE;
230
231
232 FUNCTION is_geom_segment_defined(geom_segment IN MDSYS.SDO_GEOMETRY)
233 RETURN VARCHAR2 PARALLEL_ENABLE;
234
235
236
237 FUNCTION is_geom_segment_defined_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
238 dim_array IN MDSYS.SDO_DIM_ARRAY)
239 RETURN VARCHAR2 PARALLEL_ENABLE;
240
241 FUNCTION is_geom_segment_defined_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
242 RETURN VARCHAR2 PARALLEL_ENABLE;
243
244
245
246 --
247 -- check if the given LRS point is valid
248 --
249
250
251 FUNCTION valid_lrs_pt(point IN MDSYS.SDO_GEOMETRY,
252 dim_array IN MDSYS.SDO_DIM_ARRAY)
253 RETURN VARCHAR2 PARALLEL_ENABLE;
254
255
256 FUNCTION valid_lrs_pt(point IN MDSYS.SDO_GEOMETRY)
257 RETURN VARCHAR2 PARALLEL_ENABLE;
258
259
260
261 FUNCTION valid_lrs_pt_3d(point IN MDSYS.SDO_GEOMETRY,
262 dim_array IN MDSYS.SDO_DIM_ARRAY)
263 RETURN VARCHAR2 PARALLEL_ENABLE;
264
265
266 FUNCTION valid_lrs_pt_3d(point IN MDSYS.SDO_GEOMETRY)
267 RETURN VARCHAR2 PARALLEL_ENABLE;
268
269
270
271
272 --
273 -- check if the given measure falls within the start/end measures
274 -- of a given geometric segment
275 --
276
277
278 FUNCTION valid_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
279 dim_array IN MDSYS.SDO_DIM_ARRAY,
280 measure IN NUMBER)
281 RETURN VARCHAR2 PARALLEL_ENABLE;
282
283
284 FUNCTION valid_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
285 measure IN NUMBER)
286 RETURN VARCHAR2 PARALLEL_ENABLE;
287
288
289
290 FUNCTION valid_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
291 dim_array IN MDSYS.SDO_DIM_ARRAY,
292 measure IN NUMBER)
293 RETURN VARCHAR2 PARALLEL_ENABLE;
294
295
296 FUNCTION valid_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
297 measure IN NUMBER)
298 RETURN VARCHAR2 PARALLEL_ENABLE;
299
300
301
302
303
304
305 --
306 -- check if two given geometric segments are connected
307 --
308
309 FUNCTION connected_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
310 dim_array_1 IN MDSYS.SDO_DIM_ARRAY,
311 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
312 dim_array_2 IN MDSYS.SDO_DIM_ARRAY)
313
314 RETURN VARCHAR2 PARALLEL_ENABLE;
315
316
317 FUNCTION connected_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
318 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
319 tolerance IN NUMBER)
320
321
322 RETURN VARCHAR2 PARALLEL_ENABLE;
323
324
325
326 FUNCTION connected_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
327 dim_array_1 IN MDSYS.SDO_DIM_ARRAY,
328 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
329 dim_array_2 IN MDSYS.SDO_DIM_ARRAY)
330
331 RETURN VARCHAR2 PARALLEL_ENABLE;
332
333
334 FUNCTION connected_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
335 geom_segment_2 IN MDSYS.SDO_GEOMETRY,
336 tolerance IN NUMBER)
337 RETURN VARCHAR2 PARALLEL_ENABLE;
338
339
340
341
342
343 --
344 -- return the length of the given geometric segment
345 --
346
347 FUNCTION geom_segment_length(geom_segment IN MDSYS.SDO_GEOMETRY,
348 dim_array IN MDSYS.SDO_DIM_ARRAY)
349 RETURN NUMBER PARALLEL_ENABLE;
350
351
352 FUNCTION geom_segment_length(geom_segment IN MDSYS.SDO_GEOMETRY,
353 tolerance IN NUMBER DEFAULT 1.0e-8)
354
355 RETURN NUMBER PARALLEL_ENABLE;
356
357
358
359 FUNCTION geom_segment_length_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
360 dim_array IN MDSYS.SDO_DIM_ARRAY)
361
362 RETURN NUMBER PARALLEL_ENABLE;
363
364
365
366 FUNCTION geom_segment_length_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
367 tolerance IN NUMBER DEFAULT 1.0e-8)
368
369 RETURN NUMBER PARALLEL_ENABLE;
370
371
372
373
374 --
375 -- return the start point of the geometric segment
376 --
377
378 FUNCTION geom_segment_start_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
379 dim_array IN MDSYS.SDO_DIM_ARRAY)
380 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
381
382
383 FUNCTION geom_segment_start_pt(geom_segment IN MDSYS.SDO_GEOMETRY)
384 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
385
386
387 FUNCTION geom_segment_start_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
388 dim_array IN MDSYS.SDO_DIM_ARRAY)
389 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
390
391
392 FUNCTION geom_segment_start_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
393 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
394
395
396
397 --
398 -- return the start measure of the geometric segment
399 --
400
401
402 FUNCTION geom_segment_start_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
403 dim_array IN MDSYS.SDO_DIM_ARRAY)
404 RETURN NUMBER PARALLEL_ENABLE;
405
406
407 FUNCTION geom_segment_start_measure(geom_segment IN MDSYS.SDO_GEOMETRY)
408 RETURN NUMBER PARALLEL_ENABLE;
409
410
411
412 FUNCTION geom_segment_start_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
413 dim_array IN MDSYS.SDO_DIM_ARRAY)
414 RETURN NUMBER PARALLEL_ENABLE;
415
416
417 FUNCTION geom_segment_start_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
418 RETURN NUMBER PARALLEL_ENABLE;
419
420
421
422 --
423 -- return the end point of the geometric segment
424 --
425
426 FUNCTION geom_segment_end_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
427 dim_array IN MDSYS.SDO_DIM_ARRAY)
428 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
429
430
431 FUNCTION geom_segment_end_pt(geom_segment IN MDSYS.SDO_GEOMETRY)
432 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
433
434
435
439
436 FUNCTION geom_segment_end_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
437 dim_array IN MDSYS.SDO_DIM_ARRAY)
438 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
440
441 FUNCTION geom_segment_end_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
442 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
443
444
445
446 --
447 -- return the end point of the geometric segment
448 --
449
450 FUNCTION geom_segment_end_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
451 dim_array IN MDSYS.SDO_DIM_ARRAY)
452 RETURN NUMBER PARALLEL_ENABLE;
453
454
455 FUNCTION geom_segment_end_measure(geom_segment IN MDSYS.SDO_GEOMETRY)
456
457 RETURN NUMBER PARALLEL_ENABLE;
458
459
460
461 FUNCTION geom_segment_end_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
462 dim_array IN MDSYS.SDO_DIM_ARRAY)
463 RETURN NUMBER PARALLEL_ENABLE;
464
465
466 FUNCTION geom_segment_end_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
467 RETURN NUMBER PARALLEL_ENABLE;
468
469
470
471
472
473 --
474 -- return the measure of a LSR point
475 --
476
477 FUNCTION get_measure(point IN MDSYS.SDO_GEOMETRY,
478 dim_array IN MDSYS.SDO_DIM_ARRAY)
479 RETURN NUMBER PARALLEL_ENABLE;
480
481
482 FUNCTION get_measure(point IN MDSYS.SDO_GEOMETRY)
483 RETURN NUMBER PARALLEL_ENABLE;
484
485
486
487 FUNCTION get_measure_3d(point IN MDSYS.SDO_GEOMETRY,
488 dim_array IN MDSYS.SDO_DIM_ARRAY)
489 RETURN NUMBER PARALLEL_ENABLE;
490
491
492
493 FUNCTION get_measure_3d(point IN MDSYS.SDO_GEOMETRY)
494 RETURN NUMBER PARALLEL_ENABLE;
495
496
497
498 --
499 -- locate the point w.r.t a given geometric segment
500 --
501
502 FUNCTION locate_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
503 dim_array IN MDSYS.SDO_DIM_ARRAY,
504 measure IN NUMBER,
505 offset IN NUMBER DEFAULT 0)
506 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
507
508
509
510 FUNCTION locate_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
511 measure IN NUMBER,
512 offset IN NUMBER default 0,
513 tolerance IN NUMBER default 1.0e-8)
514 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
515
516
517
518 FUNCTION locate_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
519 dim_array IN MDSYS.SDO_DIM_ARRAY,
520 measure IN NUMBER)
521
522 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
523
524 FUNCTION locate_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
525 measure IN NUMBER,
526 tolerance IN NUMBER DEFAULT 1.0e-8)
527
528 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
529
530
531
532
533
534 --
535 -- return the projection point of a given point w.r.t. to a given geometric segment
536 --
537
538 FUNCTION project_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
539 dim_array IN MDSYS.SDO_DIM_ARRAY,
540 point IN MDSYS.SDO_GEOMETRY,
541 point_dim_array IN MDSYS.SDO_DIM_ARRAY )
542
543 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
544
545
546
547 FUNCTION project_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
548 dim_array IN MDSYS.SDO_DIM_ARRAY,
549 point IN MDSYS.SDO_GEOMETRY)
550
551
552 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
553
554
555
556 FUNCTION project_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
557 dim_array IN MDSYS.SDO_DIM_ARRAY,
558 point IN MDSYS.SDO_GEOMETRY,
559 point_dim_array IN MDSYS.SDO_DIM_ARRAY,
560 offset OUT NUMBER)
561
562 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
563
564
565
566
567
568 FUNCTION project_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
569 point IN MDSYS.SDO_GEOMETRY,
570 tolerance IN NUMBER DEFAULT 1.0e-8)
571
572
573 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
574
575
576
577 FUNCTION project_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
578 point IN MDSYS.SDO_GEOMETRY,
579 tolerance IN NUMBER,
580 offset OUT NUMBER )
581
582
583 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
584
585
586
587
588 FUNCTION project_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
589 dim_array IN MDSYS.SDO_DIM_ARRAY,
593 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
590 point IN MDSYS.SDO_GEOMETRY,
591 point_dim_array IN MDSYS.SDO_DIM_ARRAY )
592
594
595
596 FUNCTION project_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
597 dim_array IN MDSYS.SDO_DIM_ARRAY,
598 point IN MDSYS.SDO_GEOMETRY)
599
600
601 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
602
603
604
605 FUNCTION project_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
606 dim_array IN MDSYS.SDO_DIM_ARRAY,
607 point IN MDSYS.SDO_GEOMETRY,
608 point_dim_array IN MDSYS.SDO_DIM_ARRAY,
609 offset OUT NUMBER)
610
611 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
612
613
614
615
616 FUNCTION project_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
617 point IN MDSYS.SDO_GEOMETRY,
618 tolerance IN NUMBER DEFAULT 1.0e-8)
619 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
620
621
622
623 FUNCTION project_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
624 point IN MDSYS.SDO_GEOMETRY,
625 tolerance IN NUMBER,
626 offset OUT NUMBER)
627 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
628
629
630
631
632
633
634
635 ---
636 --- LRS 817 features declaration
637 ---
638
639
640
641 --
642 -- return geom segment measure range
643 --
644
645 FUNCTION measure_range(geom_segment IN MDSYS.SDO_GEOMETRY,
646 dim_array IN MDSYS.SDO_DIM_ARRAY)
647 RETURN NUMBER PARALLEL_ENABLE;
648
649
650 FUNCTION measure_range(geom_segment IN MDSYS.SDO_GEOMETRY)
651 RETURN NUMBER PARALLEL_ENABLE;
652
653
654
655
656 FUNCTION measure_range_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
657 dim_array IN MDSYS.SDO_DIM_ARRAY)
658 RETURN NUMBER PARALLEL_ENABLE;
659
660
661 FUNCTION measure_range_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
662 RETURN NUMBER PARALLEL_ENABLE;
663
664
665
666
667
668
669 --
670 -- Convert standard dim info to lrs diminfo by adding an additional measure informaiotn
671 --
672
673 FUNCTION convert_to_lrs_dim_array(dim_array IN MDSYS.SDO_DIM_ARRAY,
674 dim_name IN VARCHAR2,
675 dim_pos IN INTEGER,
676 lower_bound IN NUMBER DEFAULT NULL,
677 upper_bound IN NUMBER DEFAULT NULL,
678 tolerance IN NUMBER DEFAULT NULL)
679
680 RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;
681
682
683
684 --
685 -- Convert standard dim info to lrs diminfo by adding an additional measure informaiotn
686 --
687
688 FUNCTION convert_to_lrs_dim_array(dim_array IN MDSYS.SDO_DIM_ARRAY,
689 dim_name IN VARCHAR2,
690 lower_bound IN NUMBER DEFAULT NULL,
691 upper_bound IN NUMBER DEFAULT NULL,
692 tolerance IN NUMBER DEFAULT NULL)
693
694 RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;
695
696
697
698 FUNCTION convert_to_lrs_dim_array(dim_array IN MDSYS.SDO_DIM_ARRAY,
699 lower_bound IN NUMBER DEFAULT NULL,
700 upper_bound IN NUMBER DEFAULT NULL,
701 tolerance IN NUMBER DEFAULT NULL)
702
703 RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;
704
705
706
707
708
709 FUNCTION convert_to_lrs_dim_array_3d(dim_array IN MDSYS.SDO_DIM_ARRAY,
710 dim_name IN VARCHAR2,
711 lower_bound IN NUMBER DEFAULT NULL,
712 upper_bound IN NUMBER DEFAULT NULL,
713 tolerance IN NUMBER DEFAULT NULL)
714
715 RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;
716
717
718
719
720 FUNCTION convert_to_std_dim_array(dim_array IN MDSYS.SDO_DIM_ARRAY)
721 RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;
722
723
724 FUNCTION convert_to_std_dim_array(dim_array IN MDSYS.SDO_DIM_ARRAY,
725 m_pos IN INTEGER)
726 RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;
727
728
729
730 FUNCTION convert_to_std_dim_array_3d(dim_array IN MDSYS.SDO_DIM_ARRAY)
731 RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;
732
733
734
735
736
737 --
738 -- Convert standard linestring geometry to an LRS geom segment
739 --
740
741 FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
745 end_measure IN NUMBER )
742 dim_array IN MDSYS.SDO_DIM_ARRAY,
743 m_pos IN INTEGER,
744 start_measure IN NUMBER ,
746 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
747
748
749 FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
750 dim_array IN MDSYS.SDO_DIM_ARRAY,
751 m_pos IN INTEGER DEFAULT NULL)
752
753 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
754
755
756
757 FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
758 dim_array IN MDSYS.SDO_DIM_ARRAY,
759 start_measure IN NUMBER ,
760 end_measure IN NUMBER )
761 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
762
763
764 FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
765 m_pos IN INTEGER,
766 start_measure IN NUMBER,
767 end_measure IN NUMBER)
768
769 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
770
771
772 FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
773 start_measure IN NUMBER,
774 end_measure IN NUMBER)
775
776 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
777
778
779 FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
780 m_pos IN INTEGER)
781
782 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
783
784
785
786
787 FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY)
788
789 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
790
791
792
793
794 FUNCTION convert_to_lrs_geom_3d(standard_geom IN MDSYS.SDO_GEOMETRY,
795 dim_array IN MDSYS.SDO_DIM_ARRAY,
796 start_measure IN NUMBER DEFAULT NULL,
797 end_measure IN NUMBER DEFAULT NULL)
798 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
799
800
801 FUNCTION convert_to_lrs_geom_3d(standard_geom IN MDSYS.SDO_GEOMETRY,
802 start_measure IN NUMBER DEFAULT NULL,
803 end_measure IN NUMBER DEFAULT NULL)
804 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
805
806
807
808
809 --
810 -- Convert an LRS geometry to a standard linestring geometry
811 --
812
813 FUNCTION convert_to_std_geom(lrs_geom IN MDSYS.SDO_GEOMETRY,
814 dim_array IN MDSYS.SDO_DIM_ARRAY)
815
816 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
817
818
819 FUNCTION convert_to_std_geom(lrs_geom IN MDSYS.SDO_GEOMETRY)
820
821 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
822
823
824
825
826 FUNCTION convert_to_std_geom_3d(lrs_geom IN MDSYS.SDO_GEOMETRY,
827 dim_array IN MDSYS.SDO_DIM_ARRAY)
828 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
829
830
831 FUNCTION convert_to_std_geom_3d(lrs_geom IN MDSYS.SDO_GEOMETRY)
832 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
833
834
835
836
837
838 --
839 -- Update standard geometry layer to an LRS geometry layer, metadata is updated as well
840 --
841
842 FUNCTION convert_to_lrs_layer(table_name IN VARCHAR2,
843 column_name IN VARCHAR2,
844 lower_bound IN NUMBER DEFAULT NULL,
845 upper_bound IN NUMBER DEFAULT NULL,
846 tolerance IN NUMBER DEFAULT NULL)
847 RETURN VARCHAR2 PARALLEL_ENABLE;
848
849
850 FUNCTION convert_to_lrs_layer(table_name IN VARCHAR2,
851 column_name IN VARCHAR2,
852 dim_name IN VARCHAR2,
853 dim_pos IN INTEGER,
854 lower_bound IN NUMBER DEFAULT NULL,
855 upper_bound IN NUMBER DEFAULT NULL,
856 tolerance IN NUMBER DEFAULT NULL)
857 RETURN VARCHAR2 PARALLEL_ENABLE;
858
859
860
861 FUNCTION convert_to_lrs_layer_3d(table_name IN VARCHAR2,
862 column_name IN VARCHAR2,
863 lower_bound IN NUMBER DEFAULT NULL,
864 upper_bound IN NUMBER DEFAULT NULL,
865 tolerance IN NUMBER DEFAULT NULL)
866 RETURN VARCHAR2 PARALLEL_ENABLE;
867
868
869 FUNCTION convert_to_lrs_layer_3d(table_name IN VARCHAR2,
870 column_name IN VARCHAR2,
871 dim_name IN VARCHAR2,
872 lower_bound IN NUMBER DEFAULT NULL,
876
873 upper_bound IN NUMBER DEFAULT NULL,
874 tolerance IN NUMBER DEFAULT NULL)
875 RETURN VARCHAR2 PARALLEL_ENABLE;
877
878
879 --
880 -- Update standard geometry layer to an LRS geometry layer, metadata is updated as well
881 --
882
883 FUNCTION convert_to_std_layer(table_name IN VARCHAR2,
884 column_name IN VARCHAR2)
885 RETURN VARCHAR2 PARALLEL_ENABLE;
886
887
888 FUNCTION convert_to_std_layer_3d(table_name IN VARCHAR2,
889 column_name IN VARCHAR2)
890 RETURN VARCHAR2 PARALLEL_ENABLE;
891
892
893
894 --
895 -- LRS 817 feature
896 -- return a new geom_segment by translateing the original geom_segment
897 --
898
899 FUNCTION translate_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
900 dim_array IN MDSYS.SDO_DIM_ARRAY,
901 translate_m IN NUMBER)
902
903 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
904
905
906 FUNCTION translate_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
907 translate_m IN NUMBER)
908
909 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
910
911
912
913 FUNCTION translate_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
914 dim_array IN MDSYS.SDO_DIM_ARRAY,
915 translate_m IN NUMBER)
916
917 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
918
919
920 FUNCTION translate_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
921 translate_m IN NUMBER)
922
923 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
924
925
926
927
928 --
929 -- LRS 817 feature
930 -- return a new geom_segment by reversing the original geom segment
931 --
932
933 FUNCTION reverse_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
934 dim_array IN MDSYS.SDO_DIM_ARRAY)
935
936 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
937
938
939 FUNCTION reverse_measure(geom_segment IN MDSYS.SDO_GEOMETRY)
940
941 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
942
943
944
945 FUNCTION reverse_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
946 dim_array IN MDSYS.SDO_DIM_ARRAY)
947
948 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
949
950
951 FUNCTION reverse_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
952
953 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
954
955
956
957 --
958 -- LRS 817 find the measure of the closest pt of a given pt w.r.t. an LRS segment
959 -- first project the pt onto the LRS segment then get the measure of the projection pt
960 --
961
962 FUNCTION find_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
963 dim_array IN MDSYS.SDO_DIM_ARRAY,
964 point IN MDSYS.SDO_GEOMETRY,
965 point_dim_array IN MDSYS.SDO_DIM_ARRAY DEFAULT NULL)
966
967 RETURN NUMBER PARALLEL_ENABLE;
968
969
970
971
972 FUNCTION find_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
973 point IN MDSYS.SDO_GEOMETRY,
974 tolerance IN NUMBER DEFAULT 1.0e-8)
975
976 RETURN NUMBER PARALLEL_ENABLE;
977
978
979
980 FUNCTION find_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
981 dim_array IN MDSYS.SDO_DIM_ARRAY,
982 point IN MDSYS.SDO_GEOMETRY,
983 point_dim_array IN MDSYS.SDO_DIM_ARRAY DEFAULT NULL)
984
985 RETURN NUMBER PARALLEL_ENABLE;
986
987
988 FUNCTION find_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
989 point IN MDSYS.SDO_GEOMETRY,
990 tolerance IN NUMBER DEFAULT 1.0e-8)
991
992 RETURN NUMBER PARALLEL_ENABLE;
993
994 FUNCTION find_offset(geom_segment IN MDSYS.SDO_GEOMETRY,
995 dim_array IN MDSYS.SDO_DIM_ARRAY,
996 point IN MDSYS.SDO_GEOMETRY,
997 point_dim_array IN MDSYS.SDO_DIM_ARRAY DEFAULT NULL)
998
999 RETURN NUMBER PARALLEL_ENABLE;
1000
1001
1002
1003
1004 FUNCTION find_offset(geom_segment IN MDSYS.SDO_GEOMETRY,
1005 point IN MDSYS.SDO_GEOMETRY,
1006 tolerance IN NUMBER DEFAULT 1.0e-8)
1007
1008 RETURN NUMBER PARALLEL_ENABLE;
1009
1010
1011
1012
1013
1014 --
1015 -- LRS 817 dynamic segmentation, an alias of clip_geom_segment
1016 --
1017
1018
1019 FUNCTION dynamic_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
1020 dim_array IN MDSYS.SDO_DIM_ARRAY,
1021 start_measure IN NUMBER,
1025
1022 end_measure IN NUMBER )
1023
1024 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1026
1027 FUNCTION dynamic_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
1028 start_measure IN NUMBER,
1029 end_measure IN NUMBER,
1030 tolerance IN NUMBER DEFAULT 1.0e-8)
1031
1032 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1033
1034
1035 FUNCTION dynamic_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1036 dim_array IN MDSYS.SDO_DIM_ARRAY,
1037 start_measure IN NUMBER,
1038 end_measure IN NUMBER )
1039
1040 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1041
1042
1043 FUNCTION dynamic_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1044 start_measure IN NUMBER,
1045 end_measure IN NUMBER,
1046 tolerance IN NUMBER DEFAULT 1.0e-8)
1047
1048 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1049
1050
1051
1052
1053 --
1054 -- LRS 817 convert a measure to a percentage (0%~100%) w.r.t. a given geom segment
1055 --
1056
1057
1058 FUNCTION measure_to_percentage(geom_segment IN MDSYS.SDO_GEOMETRY,
1059 dim_array IN MDSYS.SDO_DIM_ARRAY,
1060 measure IN NUMBER)
1061
1062 RETURN NUMBER PARALLEL_ENABLE;
1063
1064
1065 FUNCTION measure_to_percentage(geom_segment IN MDSYS.SDO_GEOMETRY,
1066 measure IN NUMBER)
1067
1068 RETURN NUMBER PARALLEL_ENABLE;
1069
1070
1071
1072
1073 --
1074 -- LRS 817 convert a percentage (0%~100%) to a measure w.r.t. given geom segment
1075 --
1076
1077 FUNCTION percentage_to_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1078 dim_array IN MDSYS.SDO_DIM_ARRAY,
1079 percentage IN NUMBER)
1080
1081 RETURN NUMBER PARALLEL_ENABLE;
1082
1083
1084
1085 FUNCTION percentage_to_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1086 percentage IN NUMBER)
1087
1088 RETURN NUMBER PARALLEL_ENABLE;
1089
1090
1091
1092 --
1093 -- reset the measure values to NULL
1094 --
1095 PROCEDURE reset_measure(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1096 dim_array IN MDSYS.SDO_DIM_ARRAY);
1097
1098
1099 PROCEDURE reset_measure(geom_segment IN OUT MDSYS.SDO_GEOMETRY);
1100
1101
1102
1103 --
1104 -- Redefine the LRS segment (ignore all current measures) and repopulate measure info. based on
1105 -- the given start/end measure, this is different from define_geom_segment which keeps old measure info
1106 -- if exist.
1107 --
1108
1109 PROCEDURE redefine_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1110 dim_array IN MDSYS.SDO_DIM_ARRAY,
1111 start_measure IN NUMBER ,
1112 end_measure IN NUMBER );
1113
1114
1115 PROCEDURE redefine_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1116 dim_array IN MDSYS.SDO_DIM_ARRAY);
1117
1118
1119
1120
1121 PROCEDURE redefine_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1122 start_measure IN NUMBER ,
1123 end_measure IN NUMBER ,
1124 tolerance IN NUMBER DEFAULT 1.0e-8);
1125
1126
1127
1128 PROCEDURE redefine_geom_segment(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1129 tolerance IN NUMBER DEFAULT 1.0e-8);
1130
1131
1132
1133
1134 PROCEDURE redefine_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1135 dim_array IN MDSYS.SDO_DIM_ARRAY,
1136 start_measure IN NUMBER ,
1137 end_measure IN NUMBER );
1138
1139
1140 PROCEDURE redefine_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1141 dim_array IN MDSYS.SDO_DIM_ARRAY);
1142
1143
1144
1145 PROCEDURE redefine_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1146 start_measure IN NUMBER ,
1147 end_measure IN NUMBER ,
1148 tolerance IN NUMBER DEFAULT 1.0e-8);
1149
1150
1151 PROCEDURE redefine_geom_segment_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1152 tolerance IN NUMBER DEFAULT 1.0e-8);
1153
1154
1155
1156
1157
1158 ---
1159 --- 82 LRS Features
1160 ---
1161
1162
1163 --
1164 -- set the measure value of the closest point (using snap_to_pt) in the given geometry
1165 --
1166
1167 FUNCTION set_pt_measure(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1171 measure IN NUMBER )
1168 dim_array IN MDSYS.SDO_DIM_ARRAY,
1169 point IN MDSYS.SDO_GEOMETRY,
1170 pt_dim_array IN MDSYS.SDO_DIM_ARRAY,
1172 RETURN VARCHAR2 PARALLEL_ENABLE;
1173
1174
1175 FUNCTION set_pt_measure(point IN OUT MDSYS.SDO_GEOMETRY,
1176 dim_array IN MDSYS.SDO_DIM_ARRAY,
1177 measure IN NUMBER )
1178 RETURN VARCHAR2 PARALLEL_ENABLE;
1179
1180
1181 FUNCTION set_pt_measure(point IN OUT MDSYS.SDO_GEOMETRY,
1182 measure IN NUMBER )
1183 RETURN VARCHAR2 PARALLEL_ENABLE;
1184
1185
1186
1187 FUNCTION set_pt_measure(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1188 point IN MDSYS.SDO_GEOMETRY,
1189 measure IN NUMBER )
1190 RETURN VARCHAR2 PARALLEL_ENABLE;
1191
1192
1193
1194
1195 FUNCTION set_pt_measure_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1196 dim_array IN MDSYS.SDO_DIM_ARRAY,
1197 point IN MDSYS.SDO_GEOMETRY,
1198 pt_dim_array IN MDSYS.SDO_DIM_ARRAY,
1199 measure IN NUMBER )
1200 RETURN VARCHAR2 PARALLEL_ENABLE;
1201
1202
1203 FUNCTION set_pt_measure_3d(geom_segment IN OUT MDSYS.SDO_GEOMETRY,
1204 point IN MDSYS.SDO_GEOMETRY,
1205 measure IN NUMBER )
1206 RETURN VARCHAR2 PARALLEL_ENABLE;
1207
1208
1209
1210 --
1211 -- reverse the direction of the geometry (shape pt order )
1212 --
1213
1214 FUNCTION reverse_geometry(geom IN MDSYS.SDO_GEOMETRY,
1215 dim_array IN MDSYS.SDO_DIM_ARRAY)
1216
1217 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1218
1219
1220 FUNCTION reverse_geometry(geom IN MDSYS.SDO_GEOMETRY)
1221
1222 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1223
1224
1225
1226
1227 --
1228 -- generate an offset curve w.r.t. to an LRS geometry
1229 --
1230
1231 -- for geodetic offset, consider arc_tolerance
1232
1233 FUNCTION offset_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
1234 dim_array IN MDSYS.SDO_DIM_ARRAY,
1235 start_measure IN NUMBER,
1236 end_measure IN NUMBER,
1237 offset IN NUMBER,
1238 unit IN VARCHAR2)
1239
1240
1241 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1242
1243
1244
1245 -- for geodetic offset, consider arc_tolerance
1246
1247 FUNCTION offset_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
1248 start_measure IN NUMBER,
1249 end_measure IN NUMBER,
1250 offset IN NUMBER,
1251 tolerance IN NUMBER,
1252 unit IN VARCHAR2)
1253
1254
1255 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1256
1257
1258
1259 FUNCTION offset_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
1260 dim_array IN MDSYS.SDO_DIM_ARRAY,
1261 start_measure IN NUMBER,
1262 end_measure IN NUMBER,
1263 offset IN NUMBER)
1264
1265
1266 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1267
1268
1269
1270 FUNCTION offset_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
1271 start_measure IN NUMBER,
1272 end_measure IN NUMBER,
1273 offset IN NUMBER,
1274 tolerance IN NUMBER)
1275
1276
1277 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1278
1279
1280 FUNCTION offset_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
1281 start_measure IN NUMBER,
1282 end_measure IN NUMBER,
1283 offset IN NUMBER)
1284
1285
1286 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1287
1288
1289
1290 FUNCTION is_measure_increasing(geom_segment IN MDSYS.SDO_GEOMETRY,
1291 dim_array IN MDSYS.SDO_DIM_ARRAY)
1292
1293
1294 RETURN VARCHAR2 PARALLEL_ENABLE;
1295
1296
1297
1298 FUNCTION is_measure_increasing(geom_segment IN MDSYS.SDO_GEOMETRY)
1299
1300 RETURN VARCHAR2 PARALLEL_ENABLE;
1301
1302
1303 FUNCTION is_measure_increasing_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1304 dim_array IN MDSYS.SDO_DIM_ARRAY)
1305
1306
1307 RETURN VARCHAR2 PARALLEL_ENABLE;
1308
1309
1310
1311 FUNCTION is_measure_increasing_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
1312
1316
1313 RETURN VARCHAR2 PARALLEL_ENABLE;
1314
1315
1317
1318 FUNCTION is_measure_decreasing(geom_segment IN MDSYS.SDO_GEOMETRY,
1319 dim_array IN MDSYS.SDO_DIM_ARRAY)
1320
1321
1322 RETURN VARCHAR2 PARALLEL_ENABLE;
1323
1324
1325 FUNCTION is_measure_decreasing(geom_segment IN MDSYS.SDO_GEOMETRY)
1326
1327 RETURN VARCHAR2 PARALLEL_ENABLE;
1328
1329
1330 FUNCTION is_measure_decreasing_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1331 dim_array IN MDSYS.SDO_DIM_ARRAY)
1332
1333
1334 RETURN VARCHAR2 PARALLEL_ENABLE;
1335
1336
1337 FUNCTION is_measure_decreasing_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
1338
1339 RETURN VARCHAR2 PARALLEL_ENABLE;
1340
1341
1342
1343 FUNCTION validate_lrs_geometry(geom_segment IN MDSYS.SDO_GEOMETRY,
1344 dim_array IN MDSYS.SDO_DIM_ARRAY)
1345
1346 RETURN VARCHAR2 PARALLEL_ENABLE;
1347
1348
1349 FUNCTION validate_lrs_geometry(geom_segment IN MDSYS.SDO_GEOMETRY)
1350 RETURN VARCHAR2 PARALLEL_ENABLE;
1351
1352
1353 FUNCTION validate_lrs_geometry_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1354 dim_array IN MDSYS.SDO_DIM_ARRAY)
1355
1356 RETURN VARCHAR2 PARALLEL_ENABLE;
1357
1358
1359 FUNCTION validate_lrs_geometry_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
1360 RETURN VARCHAR2 PARALLEL_ENABLE;
1361
1362
1363 FUNCTION find_lrs_dim_pos(table_name IN VARCHAR2,
1364 column_name IN VARCHAR2)
1365 RETURN INTEGER PARALLEL_ENABLE;
1366
1367
1368 --
1369 -- get previous shape point based on the given measure
1370 --
1371
1372 FUNCTION get_prev_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1373 dim_array IN MDSYS.SDO_DIM_ARRAY,
1374 measure IN NUMBER)
1375
1376 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1377
1378
1379
1380 FUNCTION get_prev_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1381 measure IN NUMBER)
1382
1383 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1384
1385
1386
1387 FUNCTION get_prev_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1388 dim_array IN MDSYS.SDO_DIM_ARRAY,
1389 measure IN NUMBER)
1390
1391 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1392
1393
1394
1395 FUNCTION get_prev_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1396 measure IN NUMBER)
1397
1398 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1399
1400
1401
1402 --
1403 -- get previous shape point based on the given point
1404 --
1405
1406
1407 FUNCTION get_prev_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1408 dim_array IN MDSYS.SDO_DIM_ARRAY,
1409 point IN MDSYS.SDO_GEOMETRY)
1410
1411 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1412
1413
1414
1415 FUNCTION get_prev_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1416 point IN MDSYS.SDO_GEOMETRY)
1417
1418 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1419
1420
1421
1422 FUNCTION get_prev_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1423 dim_array IN MDSYS.SDO_DIM_ARRAY,
1424 point IN MDSYS.SDO_GEOMETRY)
1425
1426 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1427
1428
1429
1430 FUNCTION get_prev_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1431 point IN MDSYS.SDO_GEOMETRY)
1432
1433 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1434
1435
1436
1437
1438 --
1439 -- get the next shape point based on the given measure
1440 --
1441
1442
1443 FUNCTION get_next_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1444 dim_array IN MDSYS.SDO_DIM_ARRAY,
1445 measure IN NUMBER)
1446
1447 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1448
1449
1450 FUNCTION get_next_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1451 measure IN NUMBER)
1452
1453 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1454
1455
1456
1457 FUNCTION get_next_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1458 dim_array IN MDSYS.SDO_DIM_ARRAY,
1459 measure IN NUMBER)
1460
1461 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1462
1463
1464 FUNCTION get_next_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1465 measure IN NUMBER)
1466
1467 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1468
1469
1470
1471
1475
1472 --
1473 -- get the next shape point based on the given point
1474 --
1476
1477 FUNCTION get_next_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1478 dim_array IN MDSYS.SDO_DIM_ARRAY,
1479 point IN MDSYS.SDO_GEOMETRY)
1480
1481 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1482
1483
1484
1485 FUNCTION get_next_shape_pt (geom_segment IN MDSYS.SDO_GEOMETRY,
1486 point IN MDSYS.SDO_GEOMETRY)
1487
1488 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1489
1490
1491
1492 FUNCTION get_next_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1493 dim_array IN MDSYS.SDO_DIM_ARRAY,
1494 point IN MDSYS.SDO_GEOMETRY)
1495
1496 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1497
1498
1499
1500 FUNCTION get_next_shape_pt_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1501 point IN MDSYS.SDO_GEOMETRY)
1502
1503 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1504
1505
1506
1507
1508 --
1509 -- get previous measure basd on the given measure
1510 --
1511
1512
1513 FUNCTION get_prev_shape_pt_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1514 dim_array IN MDSYS.SDO_DIM_ARRAY,
1515 measure IN NUMBER)
1516
1517 RETURN NUMBER PARALLEL_ENABLE;
1518
1519
1520
1521 FUNCTION get_prev_shape_pt_measure (geom_segment IN MDSYS.SDO_GEOMETRY,
1522 measure IN NUMBER)
1523
1524 RETURN NUMBER PARALLEL_ENABLE;
1525
1526
1527
1528
1529 FUNCTION get_prev_shape_pt_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1530 dim_array IN MDSYS.SDO_DIM_ARRAY,
1531 measure IN NUMBER)
1532
1533 RETURN NUMBER PARALLEL_ENABLE;
1534
1535
1536
1537 FUNCTION get_prev_shape_pt_measure_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1538 measure IN NUMBER)
1539
1540 RETURN NUMBER PARALLEL_ENABLE;
1541
1542
1543
1544
1545 --
1546 -- get previous measure (of shape point) based on the given point
1547 --
1548
1549
1550 FUNCTION get_prev_shape_pt_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1551 dim_array IN MDSYS.SDO_DIM_ARRAY,
1552 point IN MDSYS.SDO_GEOMETRY)
1553
1554 RETURN NUMBER PARALLEL_ENABLE;
1555
1556
1557
1558 FUNCTION get_prev_shape_pt_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1559 point IN MDSYS.SDO_GEOMETRY)
1560
1561 RETURN NUMBER PARALLEL_ENABLE;
1562
1563
1564
1565
1566
1567 FUNCTION get_prev_shape_pt_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1568 dim_array IN MDSYS.SDO_DIM_ARRAY,
1569 point IN MDSYS.SDO_GEOMETRY)
1570
1571 RETURN NUMBER PARALLEL_ENABLE;
1572
1573
1574
1575 FUNCTION get_prev_shape_pt_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1576 point IN MDSYS.SDO_GEOMETRY)
1577
1578 RETURN NUMBER PARALLEL_ENABLE;
1579
1580
1581
1582
1583
1584 --
1585 -- get the next measure (of shape point) based on the given measure
1586 --
1587
1588
1589 FUNCTION get_next_shape_pt_measure (geom_segment IN MDSYS.SDO_GEOMETRY,
1590 dim_array IN MDSYS.SDO_DIM_ARRAY,
1591 measure IN NUMBER)
1592
1593 RETURN NUMBER PARALLEL_ENABLE;
1594
1595
1596 FUNCTION get_next_shape_pt_measure (geom_segment IN MDSYS.SDO_GEOMETRY,
1597 measure IN NUMBER)
1598
1599 RETURN NUMBER PARALLEL_ENABLE;
1600
1601
1602 FUNCTION get_next_shape_pt_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1603 dim_array IN MDSYS.SDO_DIM_ARRAY,
1604 point IN MDSYS.SDO_GEOMETRY)
1605
1606 RETURN NUMBER PARALLEL_ENABLE;
1607
1608
1609
1610 FUNCTION get_next_shape_pt_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1611 point IN MDSYS.SDO_GEOMETRY)
1612
1613 RETURN NUMBER PARALLEL_ENABLE;
1614
1615
1616
1617 FUNCTION get_next_shape_pt_measure_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1618 dim_array IN MDSYS.SDO_DIM_ARRAY,
1619 measure IN NUMBER)
1620
1621 RETURN NUMBER PARALLEL_ENABLE;
1622
1623
1624 FUNCTION get_next_shape_pt_measure_3d (geom_segment IN MDSYS.SDO_GEOMETRY,
1625 measure IN NUMBER)
1626
1630
1627 RETURN NUMBER PARALLEL_ENABLE;
1628
1629
1631 FUNCTION get_next_shape_pt_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1632 dim_array IN MDSYS.SDO_DIM_ARRAY,
1633 point IN MDSYS.SDO_GEOMETRY)
1634
1635 RETURN NUMBER PARALLEL_ENABLE;
1636
1637
1638
1639 FUNCTION get_next_shape_pt_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1640 point IN MDSYS.SDO_GEOMETRY)
1641
1642 RETURN NUMBER;
1643
1644
1645 FUNCTION is_shape_pt_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1646 dim_array IN MDSYS.SDO_DIM_ARRAY,
1647 measure IN NUMBER)
1648
1649 RETURN VARCHAR2 PARALLEL_ENABLE;
1650
1651
1652 FUNCTION is_shape_pt_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
1653 measure IN NUMBER)
1654
1655 RETURN VARCHAR2 PARALLEL_ENABLE;
1656
1657
1658 FUNCTION is_shape_pt_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1659 dim_array IN MDSYS.SDO_DIM_ARRAY,
1660 measure IN NUMBER)
1661
1662 RETURN VARCHAR2 PARALLEL_ENABLE;
1663
1664
1665 FUNCTION is_shape_pt_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
1666 measure IN NUMBER)
1667
1668 RETURN VARCHAR2 PARALLEL_ENABLE;
1669
1670
1671 --
1672 -- intersection for LRS geometries
1673 --
1674
1675 FUNCTION lrs_intersection( geom_1 IN MDSYS.SDO_GEOMETRY,
1676 dim_array_1 IN MDSYS.SDO_DIM_ARRAY,
1677 geom_2 IN MDSYS.SDO_GEOMETRY,
1678 dim_array_2 IN MDSYS.SDO_DIM_ARRAY)
1679
1680 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1681
1682
1683 FUNCTION lrs_intersection( geom_1 IN MDSYS.SDO_GEOMETRY,
1684 geom_2 IN MDSYS.SDO_GEOMETRY,
1685 tolerance IN NUMBER)
1686 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
1687
1688
1689 END sdo_lrs;