subsurface/gpslocation.cpp
Dirk Hohndel 12a6a8f2b3 Location service: request position update
Mostly still just experimental code - now it tries to get an actual
position.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-11 12:37:40 -08:00

33 lines
973 B
C++

#include "gpslocation.h"
#include <QDebug>
GpsLocation::GpsLocation(QObject *parent)
{
QGeoPositionInfoSource *gpsSource = QGeoPositionInfoSource::createDefaultSource(parent);
if (gpsSource != 0) {
qDebug() << "have position source" << gpsSource->sourceName();
connect(gpsSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(newPosition(QGeoPositionInfo)));
connect(gpsSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeout()));
lastPos = gpsSource->lastKnownPosition();
gpsSource->requestUpdate(1000);
QGeoCoordinate lastCoord = lastPos.coordinate();
if (lastCoord.isValid()) {
qDebug() << lastCoord.toString();
} else {
qDebug() << "invalid last position";
}
} else {
qDebug() << "don't have GPS source";
}
}
void GpsLocation::newPosition(QGeoPositionInfo pos)
{
qDebug() << "received new position" << pos.coordinate().toString();
}
void GpsLocation::updateTimeout()
{
qDebug() << "request to get new position timed out";
}