-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgeolocationmanager.cpp
More file actions
71 lines (56 loc) · 2.06 KB
/
geolocationmanager.cpp
File metadata and controls
71 lines (56 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
Copyright (C) 2015 LAM Tak-Kei
This file is part of See.
See is free software: you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
See is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
See. If not, see <http://www.gnu.org/licenses/>.
*/
#include "geolocationmanager.h"
#include <QDebug>
GeolocationManager::GeolocationManager(QObject *parent) : QObject(parent)
{
geolocationSource = QGeoPositionInfoSource::createDefaultSource(this);
//qDebug() << "geolocationSource: " << geolocationSource;
if(geolocationSource) {
geolocationSource->setPreferredPositioningMethods(QGeoPositionInfoSource::AllPositioningMethods);
geolocationSource->setUpdateInterval(10000);
geolocationSource->setProperty("stationaryDetectionEnabled", true);
connect(geolocationSource, SIGNAL(positionUpdated(QGeoPositionInfo)),
this, SLOT(positionUpdated(QGeoPositionInfo)));
}
}
GeolocationManager::~GeolocationManager()
{
if(geolocationSource) {
geolocationSource->stopUpdates();
delete geolocationSource;
}
}
void GeolocationManager::positionUpdated(const QGeoPositionInfo &info)
{
//qDebug() << "Last position updated:" << info;
lastGeoPosition = info;
emit longitudeUpdated(info.coordinate().longitude());
emit latitudeUpdated(info.coordinate().latitude());
}
void GeolocationManager::startUpdates()
{
if(geolocationSource) {
geolocationSource->startUpdates();
}
}
void GeolocationManager::stopUpdates()
{
if(geolocationSource) {
geolocationSource->stopUpdates();
}
}
QGeoPositionInfo const & GeolocationManager::getLastGeoPositionInfo() const
{
return lastGeoPosition;
}