--- /dev/null
+Style2;LINESTRING(25 169,89 114,40 70,86 43)
+Style2;GEOMETRYCOLLECTION(POINT(25 169),POLYGON((80.84 41.66,84.66 48.16,86 43,80.84 41.66)) )
+Style1-thinline;GEOMETRYCOLLECTION(LINESTRING(171 154, 20 140, 71 74, 2.99 90.16),POINT(171 154),POLYGON((153.15 48.12,156.12 60.85,161 53,153.15 48.12)) )
triangle are end points. Query below. </para></caption>
</mediaobject>
</informalfigure>
- <programlisting>SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 , ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1
-FROM (SELECT ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,
-ST_GeomFromText('LINESTRING(171 154,20 140,71 74,161 53)') As line2) As foo;
+<programlisting>SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,
+ ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1
+FROM (SELECT
+ ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,
+ ST_GeomFromText('LINESTRING(171 154,20 140,71 74,161 53)') As line2
+ ) As foo;
l1_cross_l2 | l2_cross_l1
-------------+-------------
3 | -3
</programlisting>
<programlisting>
+SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,
+ ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1
+FROM (SELECT
+ ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,
+ ST_GeomFromText('LINESTRING (171 154, 20 140, 71 74, 2.99 90.16)') As line2
+ ) As foo;
+
+ l1_cross_l2 | l2_cross_l1
+-------------+-------------
+ 2 | -3
+</programlisting>
+<programlisting>
SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)
FROM streets s1 CROSS JOIN streets s2 ON (s1.gid != s2.gid AND s1.the_geom && s2.the_geom )
WHERE ST_CrossingDirection(s1.the_geom, s2.the_geom) > 0;