map goes to current lat-lon if no destination set

This commit is contained in:
rgarcia-herrera 2020-08-10 21:20:19 -05:00
parent f85ba17996
commit dd2c675146
2 changed files with 22 additions and 46 deletions

View File

@ -50,7 +50,7 @@
ActionButton: ActionButton:
important: True important: True
text: 'set destination' text: 'set destination'
on_press: root.manager.current = 'map'; app.cambia() on_press: root.manager.current = 'map';
Button: Button:

66
main.py
View File

@ -19,49 +19,26 @@ from pprint import pprint
class MapScreen(Screen): class MapScreen(Screen):
pass
def cambia(self):
print(self.app_label)
if self.app_label == 'ms hola':
self.app_label = 'ms adios'
else:
self.app_label = 'ms hola'
print(self.app_label)
class CompassScreen(Screen): class CompassScreen(Screen):
pass
def cambia(self):
print(self.app_label)
if self.app_label == 'cs hola':
self.app_label = 'cs adios'
else:
self.app_label = 'cs hola'
print(self.app_label)
class FlockompassApp(App):
class PruebitaApp(App):
gps_data = DictProperty() gps_data = DictProperty()
session_data = DictProperty() session_data = DictProperty()
def dump(self, dt): def dump(self, dt):
print(dt, self.gps_data, self.session_data) print(dt, self.gps_data, self.session_data)
def set_destination(self): def set_destination(self):
self.session_data['lat'] = self.ms.ids.centermark.lat self.session_data['dest_lat'] = self.ms.ids.centermark.lat
self.session_data['lon'] = self.ms.ids.centermark.lon self.session_data['dest_lon'] = self.ms.ids.centermark.lon
self.ms.ids.mapview.center_on(self.session_data['dest_lat'],
def cambia(self): self.session_data['dest_lon'])
print(self.app_label)
if self.app_label == 'hola':
self.app_label = 'adios'
else:
self.app_label = 'hola'
print(self.app_label)
def request_android_permissions(self): def request_android_permissions(self):
from android.permissions import request_permissions, Permission from android.permissions import request_permissions, Permission
@ -76,7 +53,6 @@ class PruebitaApp(App):
Permission.ACCESS_FINE_LOCATION], Permission.ACCESS_FINE_LOCATION],
callback) callback)
def gps_start(self, minTime, minDistance): def gps_start(self, minTime, minDistance):
gps.start(minTime, minDistance) gps.start(minTime, minDistance)
@ -91,17 +67,24 @@ class PruebitaApp(App):
self.gps_start(1000, 0) self.gps_start(1000, 0)
@mainthread @mainthread
def on_location(self, **kwargs): def on_location(self, **kwargs):
self.gps_data = kwargs self.gps_data = kwargs
if ('dest_lat' not in self.session_data
and
'dest_lon' not in self.session_data):
self.session_data['dest_lat'] = self.gps_data['lat']
self.session_data['dest_lon'] = self.gps_data['lon']
self.ms.ids.mapview.center_on(self.session_data['dest_lat'],
self.session_data['dest_lon'])
def build(self): def build(self):
# start GPS # start GPS
try: try:
gps.configure(on_location=self.on_location) gps.configure(on_location=self.on_location)
#on_status=self.on_status)
except NotImplementedError: except NotImplementedError:
import traceback import traceback
traceback.print_exc() traceback.print_exc()
@ -110,30 +93,23 @@ class PruebitaApp(App):
if platform == "android": if platform == "android":
print("gps.py: Android detected. Requesting permissions") print("gps.py: Android detected. Requesting permissions")
self.request_android_permissions() self.request_android_permissions()
self.gps_start(1000, 0) self.gps_start(1000, 0)
# setup app screens # setup app screens
screen_manager = ScreenManager(transition=RiseInTransition()) screen_manager = ScreenManager(transition=RiseInTransition())
self.ms = MapScreen(name='map') self.ms = MapScreen(name='map')
self.ms.app_label = 'ms hola'
screen_manager.add_widget(self.ms) screen_manager.add_widget(self.ms)
self.cs = CompassScreen(name='compass') self.cs = CompassScreen(name='compass')
self.cs.app_label = 'cs hola'
screen_manager.add_widget(self.cs) screen_manager.add_widget(self.cs)
self.app_label = 'hola'
Clock.schedule_interval(self.dump, 2.0) Clock.schedule_interval(self.dump, 2.0)
return screen_manager return screen_manager
if __name__ == '__main__': if __name__ == '__main__':
app = PruebitaApp() app = FlockompassApp()
app.run() app.run()