much quicker good_representative_point

This commit is contained in:
Laura Klünder 2018-12-27 15:47:11 +01:00
parent 0204db8b3a
commit f70ed3922d

View file

@ -118,6 +118,8 @@ def good_representative_point(geometry):
if isinstance(geometry, Point): if isinstance(geometry, Point):
return geometry return geometry
c = geometry.centroid c = geometry.centroid
if geometry.contains(c):
return c
x1, y1, x2, y2 = geometry.bounds x1, y1, x2, y2 = geometry.bounds
lines = (tuple(assert_multilinestring(LineString(((x1, c.y), (x2, c.y))).intersection(geometry))) + 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)))) tuple(assert_multilinestring(LineString(((c.x, y1), (c.x, y2))).intersection(geometry))))