diff --git a/server/map/__pycache__/get_relation.cpython-311.pyc b/server/map/__pycache__/get_relation.cpython-311.pyc index fe7ed5abeb7016ab5d41377e8865cbfaade3f704..c02d4b335fff30f0ab474427196c1571b4382e6a 100644 Binary files a/server/map/__pycache__/get_relation.cpython-311.pyc and b/server/map/__pycache__/get_relation.cpython-311.pyc differ diff --git a/server/map/get_relation.py b/server/map/get_relation.py index b63bc4292696cf1cd9d8492d881b72d63c77643b..7f59fd80fe47a840f87f872b413afeb082482cac 100644 --- a/server/map/get_relation.py +++ b/server/map/get_relation.py @@ -105,23 +105,25 @@ def cut_polygon_in_two(polygon: Polygon, divisor: float, cell_size: float): if cell_size > 0: # Horizontal split for point in exterior_coords: point = Point(point) # Convert coordinates to Shapely Point object - if point.y < divisor: - split_shape.append(point) + if point.y < divisor: # Check if point is over or below divisor + split_shape.append(point) # Append to appropriate shape else: remaining_shape.append(point) if len(split_shape) > 2: # Get last point added to - last_point = split_shape[len(split_shape)-2] + last_point = split_shape[-1] # Get length of the newly created edge new_edge_len = abs(last_point.x - split_shape[0].x) - print("new_edge_len: ", new_edge_len, " cell_size: ", cell_size) - x_val = new_edge_len-cell_size + print("new_edge_len: ", new_edge_len, " cell_size: ", cell_size, " last_point.x: ", last_point.x, " split_shape[0].x: ", split_shape[0].x) # Add points along the new edge to allow horizontal sections to be split into vertical ones while new_edge_len > cell_size: - split_shape.insert(0, (x_val, last_point.y)) # NB may have to add/subtract small offset of 0.00001 + x_val = new_edge_len - cell_size + + split_shape.insert(0, (x_val, last_point.y)) # NB may have to add/subtract small offset of 0.00001 remaining_shape.insert(0, (x_val, last_point.y)) # Prepend + new_edge_len -= cell_size else: # Vertical split