much quicker good_representative_point
@@ -118,6 +118,8 @@ def good_representative_point(geometry):
if isinstance(geometry, Point):
return geometry
c = geometry.centroid
+ if geometry.contains(c):
+ return c
x1, y1, x2, y2 = geometry.bounds
lines = (tuple(assert_multilinestring(LineString(((x1, c.y), (x2, c.y))).intersection(geometry))) +
tuple(assert_multilinestring(LineString(((c.x, y1), (c.x, y2))).intersection(geometry))))
