diff --git a/server/map/__pycache__/get_relation.cpython-311.pyc b/server/map/__pycache__/get_relation.cpython-311.pyc index 57774028a93d886b0fa26d86680cc748ead941c7..67094f1eecf163be9387b15f784434bc7cdcf9f9 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 ab52cfcf269e442ccc99c5e47b834cca16af9605..8b524205f2d9e3053972d8b40bcf0046c6240c10 100644 --- a/server/map/get_relation.py +++ b/server/map/get_relation.py @@ -1,8 +1,6 @@ import geopandas as gpd -from shapely.geometry import Polygon, LineString +from shapely.geometry import Polygon, LineString, MultiLineString from shapely.ops import linemerge, unary_union, polygonize -import matplotlib.pyplot as plt -import random import json import os @@ -84,17 +82,17 @@ def create_grid(poly: Polygon, cell_size): def combine_grid_with_poly(polygon, grid): - # Create an empty list to store tiles intersecting the polygon intersecting_tiles = [] - # Iterate through each grid line for line in grid: - # Check if the line intersects with the polygon if line.intersects(polygon): - # If the line intersects, find the intersection points intersection = line.intersection(polygon) - # Add each line to the list - intersecting_tiles.append(intersection) + # Check if intersection is a MultiLineString + if isinstance(intersection, MultiLineString): + # Extend the intersecting tiles with the polygonized results + intersecting_tiles.extend(list(polygonize(intersection))) + else: + intersecting_tiles.append(intersection) return intersecting_tiles