From eaaaf6f7f975ef4a0f6e0e6d60a116dec69154e9 Mon Sep 17 00:00:00 2001 From: Chris Pham Date: Thu, 15 Mar 2018 09:16:00 -0700 Subject: [PATCH] Generate current location marker changed and fit PIP8 --- .../src/Framework/MapSystems/RoverMap.py | 29 +++++++++---------- .../MapSystems/RoverMapCoordinator.py | 12 ++++++-- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMap.py b/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMap.py index eca806f..d5b18c4 100644 --- a/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMap.py +++ b/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMap.py @@ -349,6 +349,7 @@ class OverlayImage(object): self.height = height self.big_image = None self.display_image = None + self.indicator = None self.helper = MapHelper.MapHelper() x, y = self._get_cartesian(latitude, longitude) @@ -370,6 +371,7 @@ class OverlayImage(object): True) self.display_image = self.helper.new_image(self.width, self.height, True) + self.generate_dot_and_hat() def _get_cartesian(self, lat, lon): """ @@ -409,23 +411,20 @@ class OverlayImage(object): return self.display_image + def generate_dot_and_hat(self): + self.indicator = self.helper.new_image(25, 50, True) + draw = PIL.ImageDraw.Draw(self.indicator) + draw.ellipse((0, 25, 25, 50), fill="red") + draw.line((0, 24, 13, 1), fill="red", width=5) + draw.line((13, 1, 24, 24), fill="red", width=5) + def _draw_rover(self, lat, lon, size, scaler): x, y = self._get_cartesian(lat, lon) - draw = PIL.ImageDraw.Draw(self.big_image) - draw.ellipse((x-size, y-size, x+size, y+size), fill="red") - point_1 = tuple((math.cos(x-2*size * scaler), math.sin(y * scaler))) - point_2 = tuple((math.cos(x * scaler), math.sin(y+2*size * scaler))) - point_3 = (math.cos(x+2*size * scaler), math.sin(y * scaler)) - draw.line( - (point_1, - point_2), - fill="red", - width=600) - draw.line( - (point_2, - point_3), - fill="red", - width=600) + # Center of the circle on the indicator is (12.5, 37.5) + x = x - 12 + y = y - 37 + self.display_image.paste(self.indicator, (x, y)) + self.display_image.save("Something.png") def update(self): diff --git a/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py b/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py index f6e52a2..19ac524 100644 --- a/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py +++ b/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py @@ -84,9 +84,15 @@ class RoverMapCoordinator(QtCore.QThread): def _get_map_image(self): while self.map_image is None: self.map_image = self.google_maps_object.display_image - self.overlay_image_object.update_new_location(44.567161,-123.278432, .7) - self.map_image.paste(self.overlay_image_object.display_image, (0,0), self.overlay_image_object.display_image) - # self.map_image = Image.alpha_composite(self.google_maps_object.display_image, self.overlay_image_object.display_image) + self.overlay_image_object.update_new_location(44.567161, + -123.278432, + .7) + self.map_image.paste(self.overlay_image_object.display_image, + (0, 0), + self.overlay_image_object.display_image) + # self.map_image = Image.alpha_composite( + # self.google_maps_object.display_image, + # self.overlay_image_object.display_image) # get overlay here qim = ImageQt(self.map_image) self.map_pixmap = QtGui.QPixmap.fromImage(qim)