This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
bicimobile/src/gpsposition.cpp
2011-05-04 10:57:35 +02:00

45 lines
1.1 KiB
C++

#include "gpsposition.h"
GPSPosition::GPSPosition(QObject *parent) :
QObject(parent) {
tolerance = 50;
location = QGeoPositionInfoSource::createDefaultSource(this);
connect(location, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(onPositionUpdated(QGeoPositionInfo)));
location->startUpdates();
location->setUpdateInterval(30000);
location->requestUpdate();
}
qreal GPSPosition::getLatitude() const {
return coordinate.latitude();
}
qreal GPSPosition::getLongitude() const {
return coordinate.longitude();
}
void GPSPosition::setTolerance(qreal newTolerance) {
tolerance = newTolerance;
}
QGeoCoordinate GPSPosition::getCoordinate() const {
return coordinate;
}
void GPSPosition::onPositionUpdated(QGeoPositionInfo position) {
coordinate = position.coordinate();
if (coordinate.distanceTo(lastEmitted) > tolerance) {
lastEmitted = coordinate;
emit movedTolerance();
}
qDebug() << "Position updated : " << coordinate;
}
GPSPosition& GPSPosition::getInstance() {
static GPSPosition instance;
return instance;
}
void GPSPosition::requestUpdate() {
location->requestUpdate();
}