Hi
I have a list of shapely polygons in Python. To find out which polygon touch is easy, using the .touches() method. However, I need something that returns true only when the polygons share more than one point (in other words shares a border). Let me illustrate:
IPython 0.10 -- An enhanced Interactive Python.
In [1]: from shapely.geometry import Polygon
In [2]: polygons = [Polygon([(0,0),(0,1),(1,1),(1,0)]), Polygon([(1,0),(1,1),(2,1),(2,0)]), Polygon([(2,1),(2,2),(3,2),(3,1)])]
In [3]: polygons[0].touches(polygons[1])
Out[3]: True
In [4]: polygons[0].touches(polygons[2])
Out[4]: False
In [5]: polygons[1].touches(polygons[2])
Out[5]: True
In this case, polygon 0 and 1 shares two points (an entire border). Polygon 1 and 2 only shares one point. What I'm looking for is a function that would give me True, False, False in the above example or just something that returns the number of touching point, then I can do the rest of the logic myself.
And of course, any solution that does not involve manually iterating through all points is optimal - if I need to do that, it kind of defeats the purpose of using shapely :-)
Thanks in advance!