×
Namespaces

Variants
Actions
(Difference between revisions)

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

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Automated change of category from Lang-CN to Unlikely Category)
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot addition of Template:ArticleMetaData)
Line 1: Line 1:
 +
{{ArticleMetaData
 +
|sourcecode=[[Media:Geoinfo.zip]]
 +
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 +
|devices= <!-- Devices tested against - e.g. ''devices=Nokia 6131 NFC, Nokia C7-00'') -->
 +
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
 +
|platform= <!-- Compatible platforms - e.g. Symbian^1 and later, Qt 4.6 and later -->
 +
|devicecompatability= <!-- Compatible devices e.g.: All* (must have internal GPS) -->
 +
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
 +
|signing=<!-- Signing requirements - empty or one of: Self-Signed, DevCert, Manufacturer -->
 +
|capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. -->
 +
|keywords= <!-- APIs, classes and methods (e.g. QSystemScreenSaver, QList, CBase -->
 +
|id= <!-- Article Id (Knowledge base articles only) -->
 +
|language=Lang-Chinese
 +
|translated-by= <!-- [[User:XXXX]] -->
 +
|translated-from-title= <!-- Title only -->
 +
|translated-from-id= <!-- Id of translated revision -->
 +
|review-by=<!-- After re-review: [[User:username]] -->
 +
|review-timestamp= <!-- After re-review: YYYYMMDD -->
 +
|update-by= <!-- After significant update: [[User:username]]-->
 +
|update-timestamp= <!-- After significant update: YYYYMMDD -->
 +
|creationdate=Bugatcuteqt
 +
|author=[[User:Bugatcuteqt]]
 +
}}
 +
 
[[Category:Qt]][[Category:Qt]][[Category:Lang-Chinese]]  
 
[[Category:Qt]][[Category:Qt]][[Category:Lang-Chinese]]  
 
因为QtMobility是独立于Qt的一个模块,如果想在代码中使用QtMobility则需在.pro文件中加入下面的代码
 
因为QtMobility是独立于Qt的一个模块,如果想在代码中使用QtMobility则需在.pro文件中加入下面的代码

Revision as of 06:04, 13 December 2011

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”禁止掉,只保留”使用网络定位“,则很快能够获得数据。

171 page views in the last 30 days.
×