Top 5 Recent Articles
ARTICLES CATEGORIES
- Algorithms (22)
- All (399)
- Biography (1)
- Blog (44)
- Business Requirements (1)
- Commentary (1)
- Conversion (2)
- Customers (2)
- Data Models (1)
- Education (2)
- GeoRaptor (13)
- GPS (1)
- Image Processing (2)
- Import Export (8)
- Licensing (2)
- LiDAR (1)
- Linear Referencing (4)
- Manifold GIS (3)
- Mapping (1)
- MySQL Spatial (7)
- Networking and Routing (including Optimization) (5)
- Open Source (18)
- Oracle Spatial and Locator (194)
- Partitioning (1)
- PostGIS (36)
- Projections (1)
- Published Articles (1)
- qGIS (1)
- Recommendations (1)
- Services (1)
- Software Change Log (1)
- Source Code (37)
- Space Curves (9)
- Spatial Database Functions (109)
- Spatial DB comparison (1)
- Spatial XML Processing (11)
- SQL Server Spatial (92)
- Standards (3)
- Stored Procedure (17)
- Tessellation or Gridding (10)
- Tools (2)
- Topological Relationships (1)
- Training (2)
- Triangulation (2)
Visualising the Topological Relations of LineStrings
Introduction
The Oracle Spatial documentation includes examples of the different types of spatial relationships for polygons. This is in the section 1.8 Spatial Relationships and Filtering, in particular Figure 1-6 Topological Relationships.
I recently had to work on matching two road centreline databases and so generated an equivalent set of examples for two linestrings.
LineString Topological Relationships
The relationships were generated by the following SQL Select statement. The results were visualised in SQL Developer using GeoRaptor.
with base as ( select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0,0,2,2)) as geom from dual ), data as ( select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(-1,-1,0,0)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(-1,-1,1,1)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(-1,-1,2,2)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(-1,-1,3,3)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0,0,2,2)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0.5,0.5,1.5,1.5)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,2,2)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0,0,3,3)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,3,3)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(2,2,3,3)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0.5,2,1,1,2,2)) as geom from dual union all select sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0.5,2,1,1,1.5,1.5,2,1)) from dual ) select 'Black ' || sdo_geom.relate(b.geom,'DETERMINE',d.geom,0.05) || ' Gray' as relationship, sdo_geom.sdo_union(d.geom,sdo_util.PolygonToLine(sdo_geom.sdo_buffer(b.geom,0.1,0.0005)),0.0005) as image from base b, data d Order by relationship
The results grouped by relationship and including visualisation images, are:
RELATIONSHIP | IMAGE |
---|---|
Black CONTAINS Gray | |
Black COVEREDBY Gray | |
Black COVERS Gray | |
Black EQUAL Gray | |
Black INSIDE Gray | |
Black OVERLAPBDYDISJOINT Gray | |
Black OVERLAPBDYINTERSECT Gray | |
Black TOUCH Gray |
Documentation
- MySQL Spatial General Functions
- Oracle LRS Objects
- Oracle Spatial Exporter (Java + pl/SQL)
- Oracle Spatial Object Functions
- Oracle Spatial Object Functions (Multi Page)
- PostGIS pl/pgSQL Functions
- SC4O Oracle Java Topology Suite (Java + pl/SQL)
- SQL Server Spatial General TSQL Functions
- SQL Server Spatial LRS TSQL Functions