×
Namespaces

Variants
Actions
Revision as of 06:04, 13 December 2011 by hamishwillee (Talk | contribs)

利用QtMobility中的Location API获得位置信息

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
兼容于
平台:
Symbian

文章
bugatcuteqt 在 Bugatcuteqt 创建
最后由 hamishwillee 在 13 Dec 2011 编辑

因为QtMobility是独立于Qt的一个模块,如果想在代码中使用QtMobility则需在.pro文件中加入下面的代码

CONFIG += mobility
MOBILITY = location bearer

第一行将QtMobility进行了使能。 第二句则将定位功能和网络连接管理(某些定位方法需要网络支持)加入编译。

除此之外,如果是Symbian系统还需为工程增加相应的几个签名能力,在.pro中加入下面内容

symbian {
TARGET.CAPABILITY += NetworkServices Location ReadUserData
}

要取得位置信息,则需要有一个位置信息提供源QGeoPositionInfoSource,该信息源可以通过下面函数获得

QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this);

每当位置信息发生变化时,QGeoPositionInfoSource都会发送一个位置更新的信号SIGNAL(positionUpdated(QGeoPositionInfo)),QGeoPositionInfo中包含了经纬度和精确度等一些信息,我们只需将该信号关联到我们的slot函数中,对数据做进一步处理即可。

connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)),this, SLOT(positionUpdated(QGeoPositionInfo)));

这里是我的一个非常简单源码Media:Geoinfo.zip,将获得的坐标信息显示在标签上,在N97上测试成功。

要保证测试成功,需要在N97上做的一点设置。

1. 如果在室外的话,不用做改动,一会就能获得数据。
2. 如果在室内做测试,需要在另外一个叫”定位“的应用中,将定位方法中的”A-GPS”和”GPS”禁止掉,只保留”使用网络定位“,则很快能够获得数据。

156 page views in the last 30 days.