SQL Server STRelate equivalent of Oracles SDO_RELATE(...mask=anyinteract)

المشرف العام

Administrator
طاقم الإدارة
In Oracle Spatial, we are running checks on a graph. The Check should provide Nodes, which are marked as endnodes (Attribute "EDGEDEGREE" equals 1) but are in fact located somewhere along an edge. We are using Oracles Relate function to do this with the spatial relation pattern "mask=anyinteract"

In Oracle the Query looks like this:

SELECT 'Node' AS OBJECTTYPE,n.objectid AS OBJECTID,... FROM NODE n, EDGE e WHERE n.edgedegree=1 AND n.neighbornode_objectid IS NULL AND SDO_RELATE(n.SHAPE,e.SHAPE,'mask=anyinteract')='TRUE' AND e.nodefrom_objectidn.objectid AND e.nodeto_objectidn.objectid;Now we want to do the same on SQL Server (2012 has advanced spatial relation functions now). STRelate uses DE-9IM Sequences to do this. mask=anyinteract corresponds to "non-disjoint" or simply "intersect", but there are 4 different types of intersect. Which DE-9IM Sequence corresponds best to mask=anyintersect for the following T-SQL Query?

SELECT 'Node' AS OBJECTTYPE,n.objectid AS OBJECTID,... FROM NODE n, EDGE e WHERE n.edgedegree=1 AND n.neighbornode_objectid IS NULL AND n.SHAPE.STRelate(e.SHAPE.MakeValid(),'')='TRUE' AND e.nodefrom_objectidn.objectid AND e.nodeto_objectidn.objectid;Could you please explain me these four intersection possibilities, when relating a point on a line?



أكثر...
 
أعلى