mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-07 03:48:26 -04:00
broadcast-areas: buffer areas by a larger degree
Signed-off-by: Toby Lorne <toby.lornewelch-richards@digital.cabinet-office.gov.uk>
This commit is contained in:
@@ -25,14 +25,14 @@ def simplify_polygon(series):
|
|||||||
|
|
||||||
approx_metres_to_degree = 111320
|
approx_metres_to_degree = 111320
|
||||||
# initially buffer (extend area past perimeter) by ~25m
|
# initially buffer (extend area past perimeter) by ~25m
|
||||||
buffer_degrees = 25.0 / approx_metres_to_degree
|
buffer_degrees = 500 / approx_metres_to_degree
|
||||||
# initially simplify (snap to closest point) by ~25m
|
# initially simplify (snap to closest point) by ~25m
|
||||||
simplify_degrees = 25.0 / approx_metres_to_degree
|
simplify_degrees = 50.0 / approx_metres_to_degree
|
||||||
|
|
||||||
starting_polygon = sgeom.LineString(polygon).buffer(buffer_degrees)
|
starting_polygon = sgeom.LineString(polygon).buffer(buffer_degrees)
|
||||||
simplified_polygon = None
|
simplified_polygon = None
|
||||||
num_polys = len(polygon)
|
num_polys = len(polygon)
|
||||||
last_num_polys = None
|
last_num_polys = []
|
||||||
while True:
|
while True:
|
||||||
simplified_polygon = starting_polygon.simplify(simplify_degrees)
|
simplified_polygon = starting_polygon.simplify(simplify_degrees)
|
||||||
simplified_polygon = [[c[0], c[1]] for c in simplified_polygon.exterior.coords]
|
simplified_polygon = [[c[0], c[1]] for c in simplified_polygon.exterior.coords]
|
||||||
@@ -40,12 +40,13 @@ def simplify_polygon(series):
|
|||||||
num_polys = len(simplified_polygon)
|
num_polys = len(simplified_polygon)
|
||||||
simplify_degrees *= 2
|
simplify_degrees *= 2
|
||||||
|
|
||||||
if num_polys <= 99 or last_num_polys == num_polys:
|
if num_polys <= 99 or last_num_polys[-3:] == [num_polys, num_polys, num_polys]:
|
||||||
break
|
break
|
||||||
|
|
||||||
last_num_polys = num_polys
|
last_num_polys.append(num_polys)
|
||||||
|
|
||||||
print(".", end="", flush=True) # noqa: T001
|
print(".", end="", flush=True) # noqa: T001
|
||||||
|
|
||||||
return [simplified_polygon]
|
return [simplified_polygon]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user