From 29f2c756a5ed80510aeeca807891fb9ef046267c Mon Sep 17 00:00:00 2001 From: Stan Soldatov <118521851+iwatkot@users.noreply.github.com> Date: Tue, 24 Dec 2024 14:57:36 +0100 Subject: [PATCH] Fields padding fix --- maps4fs/generator/texture.py | 10 +++++++--- webui/generator.py | 5 +++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/maps4fs/generator/texture.py b/maps4fs/generator/texture.py index df7df684..6f306396 100644 --- a/maps4fs/generator/texture.py +++ b/maps4fs/generator/texture.py @@ -412,7 +412,7 @@ def draw(self) -> None: mask = cv2.bitwise_not(cumulative_image) - for polygon in self.polygons(layer.tags, layer.width): # type: ignore + for polygon in self.polygons(layer.tags, layer.width, layer.info_layer): # type: ignore if layer.info_layer: info_layer_data[layer.info_layer].append(self.np_to_polygon_points(polygon)) cv2.fillPoly(layer_image, [polygon], color=255) # type: ignore @@ -621,18 +621,22 @@ def _converters( return converters.get(geom_type) # type: ignore def polygons( - self, tags: dict[str, str | list[str] | bool], width: int | None + self, + tags: dict[str, str | list[str] | bool], + width: int | None, + info_layer: str | None = None, ) -> Generator[np.ndarray, None, None]: """Generator which yields numpy arrays of polygons from OSM data. Arguments: tags (dict[str, str | list[str]]): Dictionary of tags to search for. width (int | None): Width of the polygon in meters (only for LineString). + info_layer (str | None): Name of the corresponding info layer. Yields: Generator[np.ndarray, None, None]: Numpy array of polygon points. """ - is_fieds = "farmland" in tags.values() + is_fieds = info_layer == "fields" try: objects = ox.features_from_bbox(bbox=self.new_bbox, tags=tags) except Exception as e: # pylint: disable=W0718 diff --git a/webui/generator.py b/webui/generator.py index 6e4685bd..aae4a71e 100644 --- a/webui/generator.py +++ b/webui/generator.py @@ -521,6 +521,11 @@ def generate_map(self) -> None: st.session_state.generated = True self.status_container.success("Map generation completed!", icon="✅") + except Exception as e: + self.logger.error("An error occurred while generating the map: %s", repr(e)) + self.status_container.error( + f"An error occurred while generating the map: {repr(e)}.", icon="❌" + ) finally: if self.community: remove_from_queue(session_name)