Here are polygons with the the same set of points but different starting points/rounding error but still the same direction.
poly1 = Polygon([(0,0),(0,1),(1,1),(1,0)])
poly2 = Polygon([(0,1),(1,1),(1,0),(0,0)])
poly3 = Polygon([(0,1),(1,1.00000001),(1,0),(0,0)])
poly4 = Polygon([(0,0),(0,1),(1,1.00000001),(1,0)])
Issue 1: poly1.almost_equals(poly2) returns False but poly1.equals(poly2) returns True. So equals can handle different starting point but almost_equals can not.
Issue 2: poly1.almost_equals(poly3) returns False but poly1.almost_equals(poly4) returns True. So almost_equals can handle rounding errors but still not different starting point.
Is this how the almost_equals function supposed to behave? I think Polygons with different starting points are still the same Polygon and should be treated so. Are there convenient way to solve this problem? I have a complicated custom solution but am wondering if such operation has been implemented in Shapely.