Book Image

Applying and Extending Oracle Spatial

Book Image

Applying and Extending Oracle Spatial

Overview of this book

Spatial applications should be developed in the same way that users develop other database applications: by starting with an integrated data model in which the SDO_GEOMETRY objects are just another attribute describing entities and by using as many of the database features as possible for managing the data. If a task can be done using a database feature like replication, then it should be done using the standard replication technology instead of inventing a new procedure for replicating spatial data. Sometimes solving a business problem using a PL/SQL function can be more powerful, accessible, and easier to use than trying to use external software. Because Oracle Spatial's offerings are standards compliant, this book shows you how Oracle Spatial technology can be used to build cross-vendor database solutions. Applying and Extending Oracle Spatial shows you the clever things that can be done not just with Oracle Spatial on its own, but in combination with other database technologies. This is a great resource book that will convince you to purchase other Oracle technology books on non-spatial specialist technologies because you will finally see that "spatial is not special: it is a small, fun, and clever part of a much larger whole".
Table of Contents (20 chapters)
Applying and Extending Oracle Spatial
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Table Comparing Simple Feature Access/SQL and SQL/MM–Spatial
Index

Extending a linestring


The requirement to extend a linestring is quite common in the world of a practitioner. This can be done by coding a single ST_Extend member function. The rules that will govern this function are:

  • Operates only on linestrings

  • Allows for shortening via provision of a negative extension distance

  • Can be applied to the start, end, or both ends at the same time

  • Negative extension distances that could collapse the linestring to nothing need to be captured

The function's declaration in the T_Geometry type is as follows:

Create Or Replace TYPE T_Geometry As Object (
[...]
  Member Function
  ST_Extend(p_extend_dist In number,
            p_start_end   In varchar2 default 'START',
            p_unit        In varchar2 default null)
     Return T_Geometry Deterministic,

The ST_Extend function's p_extend_dist parameter can be applied in two ways. Firstly, if the supplied value is negative, the underlying linestring is shortened; if positive, the linestring is extended.

The p_start_end...