QT Android GPS Location
一、开发环境介绍
1、QT 5.11 Android for armeabi-v7a(GCC 4.9, Qt 5.11.1 for Android armv7)
2、ndk android-ndk-r17c
3、手机 小米4C
二、 GPS传感器信息读取
- pro文件添加
QT += positioning
- 头文件添加
#include <QGeoPositionInfoSource>
#include <QGeoCoordinate>
- 声明GPSInfo类
class GPSInfo : public QObject
{
Q_OBJECT
public:
double nowGroundSpeed=0.0;
double nowVerticalSpeed=0.0;
double nowMagneticVariation=0.0;
double nowHorizontalAccuracy=0.0;
double nowVerticalAccuracy=0.0;
double nowLongitude=0.0;
double nowLatitude=0.0;
double nowDirection=0.0;
QString nowTimes="";
public:
GPSInfo(QObject *parent = 0)
: QObject(parent)
{
QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this);
if (source) {
connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)),
this, SLOT(positionUpdated(QGeoPositionInfo)));
source->setUpdateInterval(200);//设置刷新时间 单位毫秒
source->startUpdates();//启动设备
}
}
private slots://槽函数中实现了GPS部分信息的读取
void positionUpdated(const QGeoPositionInfo &info)
{
nowLongitude = info.coordinate().longitude();//经度
nowLatitude = info.coordinate().latitude();//纬度
nowDirection = info.attribute(QGeoPositionInfo::Direction);
nowGroundSpeed = info.attribute(QGeoPositionInfo::GroundSpeed);
nowVerticalSpeed = info.attribute(QGeoPositionInfo::VerticalSpeed);
nowMagneticVariation = info.attribute(QGeoPositionInfo::MagneticVariation);
nowHorizontalAccuracy = info.attribute(QGeoPositionInfo::HorizontalAccuracy);
nowVerticalAccuracy = info.attribute(QGeoPositionInfo::VerticalAccuracy);
nowTimes = info.timestamp().toString();
}
};
三、工程运行截图
四、完整工程文件
注:
- 此工程仅在小米4C上实测运行,其他Android手机未进行尝试。不敢保证所有Android手机均可运行,下载前请留意;
- 工程中使用UDP向外部发送数据,关于UDP部分,在此未进行介绍;
- 注GPS授时时间为伦敦时区时间,本工程未进行转换;
完整工程文件下载地址
https://download.csdn.net/download/alexbein/10761271