×
Namespaces

Variants
Actions
(Difference between revisions)

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

From Nokia Developer Wiki
Jump to: navigation, search
bugatcuteqt (Talk | contribs)
bugatcuteqt (Talk | contribs)
Line 16: Line 16:
 
<code>connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)),this, SLOT(positionUpdated(QGeoPositionInfo)));</code>
 
<code>connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)),this, SLOT(positionUpdated(QGeoPositionInfo)));</code>
  
这里是我的一个非常简单源码[[Media:geoinfo]],将获得的坐标信息显示在标签上,在N97上测试成功。
+
这里是我的一个非常简单源码[[Media:Geoinfo.zip]],将获得的坐标信息显示在标签上,在N97上测试成功。
  
 
要保证测试成功,需要在N97上做的一点设置。<br><br>
 
要保证测试成功,需要在N97上做的一点设置。<br><br>
 
1. 如果在室外的话,不用做改动,一会就能获得数据。<br>
 
1. 如果在室外的话,不用做改动,一会就能获得数据。<br>
 
2. 如果在室内做测试,需要在另外一个叫”定位“的应用中,将定位方法中的”A-GPS”和”GPS”禁止掉,只保留”使用网络定位“,则很快能够获得数据。
 
2. 如果在室内做测试,需要在另外一个叫”定位“的应用中,将定位方法中的”A-GPS”和”GPS”禁止掉,只保留”使用网络定位“,则很快能够获得数据。

Revision as of 08:07, 29 July 2010

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

131 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×