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, ...

Get Mastering Geospatial Analysis with Python now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.