我使用以下代码为我的应用获取 GeoLocation
QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this);
if (source) {
source->setUpdateInterval(1000); // time in milliseconds
source->setPreferredPositioningMethods(QGeoPositionInfoSource::AllPositioningMethods);
connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo)));
source->startUpdates();
source->requestUpdate(30000);
const QGeoPositionInfo &info =source->lastKnownPosition();
ui->label->setText(QString("Latitude - %1 Longitude - %2").arg(info.coordinate().latitude()).arg(info.coordinate().longitude()));
}
这段代码在模拟器上完美运行,并为我提供了模拟器提供的坐标,但是当我尝试在我的 N900 上运行它时,这不起作用。它返回 Nan 而不是纬度和经度坐标。手机上当前的 GPS 信号是粗略的精度。地理定位也在手机上的 OVI 地图应用程序中工作。知道为什么上面的代码无法在手机上获取地理位置但在模拟器上完美运行吗?