self.lat = None
self.long = None
self.loop = gobject.MainLoop()
+ self.fix_count = 0
self.control = location.GPSDControl.get_default()
- self.control.set_properties(preferred_method=location.METHOD_AGNSS,
- preferred_interval=location.INTERVAL_DEFAULT)
+ self.control.set_properties(preferred_method=location\
+ .METHOD_USER_SELECTED,
+ preferred_interval=location\
+ .INTERVAL_DEFAULT)
self.control.connect("error-verbose", self.on_error, self.loop)
self.control.connect("gpsd-stopped", self.on_stop, self.loop)
if device.fix:
# once fix is found and long, lat available set long lat
if device.fix[1] & location.GPS_DEVICE_LATLONG_SET:
- self.lat, self.long = device.fix[4:6]
- data.stop()
+ # wait for a second fix before exiting
+ self.fix_count += 1
+ if self.fix_count > 1:
+ self.lat, self.long = device.fix[4:6]
+ data.stop()
def on_stop(self, control, data):
""" Stop the location service """
def start_location(self, data):
""" Start the location service """
+ self.fix_count = 0
data.start()
return False