BB10级联简单的位置信息

时间:2015-01-07 17:32:35

标签: qml blackberry-10 blackberry-cascades

我是C ++和BB10开发(Cascades)的新手,并且一直很难学习Blackberry对Qt QML的半实现。

我有一个我正在处理的应用程序,我想获取手机的纬度,经度和其他地址相关信息(城市,州,国家等)。我尝试了一些不同的东西,比如注册要从QML调用的现有C ++类,但是BB10版本的库中没有某些东西。

我发现Cascades中提供的QtMobilitySubset.location 1.2库提供了PositionSource和Address对象,但我无法从中获取任何数据。

我已将它们包含在QML文档的“attachmentObjects”部分中:

attachedObjects: [
    PositionSource {
        id: positionSource
        updateInterval: 5000
        active: true  
    },
    Place {
        id: place
    },
    Address {
        id: address

    }

]

然后尝试通过调用address.state从地址获取信息,但获取空值。同样适用于positionSource.position.coordinate.longitude - 没有价值。

我已经尝试过查看Blackberry提供的其他示例,但无法确定我做错了什么。

是否有人知道使用纯QML获取位置信息的示例?

1 个答案:

答案 0 :(得分:0)

在您的qml文件import QtMobilitySubset.location 1.1中,在您的专业文件中添加LIBS += -lQtLocationSubset -lbbcascadesmaps -lGLESv1_CM并在条形码描述文件中确保您已在应用程序标签中勾选了位置和互联网,同时确保您的位置服务已启用在设备上。以下代码在按钮单击时打印纬度和经度。

Container {
    id:mainContainer
    property string longitude
    property string latitude
    property variant cord


Button:{
text: "Show"
onClicked:
  {
   console.log("actual latitude:"+latitude+" actual longitude:"+longitude);
  }
}

attachedObjects:[
PositionSource{
            id: locationPos
            updateInterval: 1000

            onPositionChanged: {
                cord = locationPos.position.coordinate;
                longitude = cord.longitude;
                latitude = cord.latitude;
            }

        }

]


   onCreationCompleted: {
        locationPos.start();
    }
}