Intersecting lines

You know the length of the lines, and by drawing the lines in a Jupyter Notebook, you know that lines 1 and lines 3 intersect. In PostGIS, you can use the ST_Intersects() function, passing either geometries or geographies. The database will return either true or false.

The following code will execute the query on lines 1 and lines 3 and return True:

cu.execute("SELECT ST_Intersects(l.location::geography,ll.location::geometry)
FROM lines l, lines ll WHERE l.id=1 AND ll.id=3")
cu.fetchall()

The previous code will return True, because lines 1 and lines 3 intersect. But where do they intersect? Using ST_Intersection() will return to the point where the two lines meet:

cu.execute("SELECT ST_AsText(ST_Intersection(l.location::geography,
ll.location::geometry)) FROM lines l, lines ll
WHERE l.id=1 AND ll.id=3")
cu.fetchall()

By switching from ST_Intersects to ST_Intersection, you get a point of contact between the two lines. The point is as follows:

[('POINT(-106.628684465508 35.1053370957485)',)]
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset