From 254e6c8cd2e866bc6ccb8f806cc52ce5a683cd1d Mon Sep 17 00:00:00 2001 From: rhinemann Date: Wed, 25 Mar 2026 19:05:16 +0100 Subject: [PATCH] [P] Add bump remove function --- MapView/main.py | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/MapView/main.py b/MapView/main.py index 8b983bb..793928d 100644 --- a/MapView/main.py +++ b/MapView/main.py @@ -15,11 +15,24 @@ line_layer_colors = [ [1, 0, 1, 1], ] + +def get_lat_lon(point: dict[str, float] | list[float] | tuple[float, float]) -> tuple[float, float] | None: + if isinstance(point, dict): + lat = point.get("lat") + lon = point.get("lon") + else: + lat, lon = point + + if lat is None or lon is None: + return None + return lat, lon + + class MapViewApp(App): def __init__(self, **kwargs): super().__init__(**kwargs) - self.mapview = None + self.mapview: MapView | None = None self.datasource = Datasource(user_id=1) self.line_layers = dict() self.car_markers = dict() @@ -111,24 +124,34 @@ class MapViewApp(App): self.pothole_markers.append(marker) def set_bump_marker(self, point): - if isinstance(point, dict): - lat = point.get("lat") - lon = point.get("lon") - else: - lat, lon = point - + lat, lon = get_lat_lon(point) if lat is None or lon is None: return - + marker = MapMarker( lat=lat, lon=lon, - source="images/bump.png" + source="images/bump.png" ) self.mapview.add_marker(marker) self.bump_markers.append(marker) + def delete_bump_marker(self, point): + lat, lon = get_lat_lon(point) + if lat is None or lon is None: + return + + marker = MapMarker( + lat=lat, + lon=lon, + source="images/bump.png" + ) + + if marker in self.bump_markers: + self.mapview.remove_marker(marker) + self.bump_markers.pop(self.bump_markers.index(marker)) + def build(self): """