From 3b62936b2af35b71abfbcbc5dbbbdd45a98b12fd Mon Sep 17 00:00:00 2001 From: rgarcia-herrera Date: Tue, 11 Aug 2020 16:59:55 -0500 Subject: [PATCH] show distance to destination, and icon --- buildozer.spec | 4 ++-- flockompass.kv | 11 ++++++++--- icon.png | Bin 0 -> 62454 bytes main.py | 16 +++++++++++++--- 4 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 icon.png diff --git a/buildozer.spec b/buildozer.spec index a0338fa..fb17706 100644 --- a/buildozer.spec +++ b/buildozer.spec @@ -36,7 +36,7 @@ version = 0.1 # (list) Application requirements # comma separated e.g. requirements = sqlite3,kivy -requirements = hostpython3, python3, kivy, plyer, android, mapview, requests, urllib3, chardet, idna +requirements = hostpython3, python3, kivy, plyer, android, mapview, requests, urllib3, chardet, idna, geopy, geographiclib # (str) Custom source folders for requirements # Sets custom source for any requirements with recipes @@ -49,7 +49,7 @@ requirements = hostpython3, python3, kivy, plyer, android, mapview, requests, ur presplash.filename = ./presplash.png # (str) Icon of the application -#icon.filename = %(source.dir)s/data/icon.png +icon.filename = ./icon.png # (str) Supported orientation (one of landscape, sensorLandscape, portrait or all) orientation = portrait diff --git a/flockompass.kv b/flockompass.kv index db14ad9..6c66aeb 100644 --- a/flockompass.kv +++ b/flockompass.kv @@ -21,7 +21,7 @@ ActionButton: important: False text: 'go to current loc' - on_press: app.center_map_on_gps() + on_press: app.center_map_on_gps() ActionButton: important: True text: 'we ride together' @@ -58,13 +58,18 @@ important: True text: 'set destination' on_press: root.manager.current = 'map'; - FloatLayout: canvas: Color: rgb: .9, .9, .9 Rectangle: size: self.size + Label: + text: app.dest_distance + color: 0, 0, 0.3, 1 + size_hint: 0.5, 0.1 + pos: 0, 0.1 + font_size: '40sp' Image: source: 'needle.png' canvas.before: @@ -76,7 +81,7 @@ canvas.after: PopMatrix Image: - id: to_flock + id: to_flock source: 'needle_to_flock.png' canvas.before: PushMatrix diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2c28f243e7e1319a2d898b8cc3836278b5722a15 GIT binary patch literal 62454 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 literal 0 HcmV?d00001 diff --git a/main.py b/main.py index c26a319..35b2bff 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ from plyer import gps from kivy.app import App from kivy.clock import Clock -from kivy.properties import DictProperty, NumericProperty +from kivy.properties import DictProperty, NumericProperty, StringProperty from kivy.clock import mainthread from kivy.utils import platform from kivy_garden.mapview import MapView @@ -12,6 +12,8 @@ from kivy.vector import Vector from kivy.animation import Animation from math import atan2, sin, cos, degrees, floor +from geopy.distance import geodesic + class MapScreen(Screen): pass @@ -28,6 +30,8 @@ class FlockompassApp(App): needle_angle = NumericProperty(0) fbearing = NumericProperty(0) + dest_distance = StringProperty("") + def dump(self, dt): print(dt, self.gps_data, self.session_data) @@ -60,7 +64,8 @@ class FlockompassApp(App): @mainthread def on_location(self, **kwargs): self.gps_data = kwargs - + self.dump(1) + if ('dest_lat' not in self.session_data and 'dest_lon' not in self.session_data): @@ -82,6 +87,11 @@ class FlockompassApp(App): self.fbearing = self.needle_angle - degrees(self.fbearing) self.fbearing = (self.fbearing + 360) % 360 + self.dest_distance = "D: %0.1f km" % geodesic( + (self.gps_data['lat'], self.gps_data['lon']), + (self.session_data['dest_lat'], self.session_data['dest_lon'])).kilometers + print(self.dest_distance) + def center_map_on_gps(self): self.ms.ids.mapview.center_on(self.gps_data['lat'], self.gps_data['lon']) @@ -96,7 +106,7 @@ class FlockompassApp(App): if self.cs.facade.field != (None, None, None): x, y, z = self.cs.facade.field - smoothingFactor = 0.9 + smoothingFactor = 0.5 angle = atan2(y, x) self.last_angle = smoothingFactor * self.last_angle + (1 - smoothingFactor) * angle