我们知道Map和Position API是现代手机中非常重要的接口。那么我们如何在Ubuntu手机上使用它们呢?关于更多的Map及Position方面的资料可以在我们的developer网站找到:http://developer.ubuntu.com/api/qml/sdk-1.0/QtLocation.PositionSource/
1)使用MAP接口
我们可以直接使用如下的QML Map来实现MAP的功能:
Map {
id: map
plugin : Plugin {
name: "osm"
}
anchors.fill: parent
zoomLevel: 15
center: QtPositioning.coordinate(39.9289 , 116.3883)
Label {
anchors { top: parent.top; left: parent.left; margins: units.gu(2) }
text: "Position is: (" + me.position.coordinate.latitude + ", " +
me.position.coordinate.longitude + ")";
fontSize: "large"
color: "red"
}
}
在这里我们使用了我们伟大祖国的北京地址经纬度坐标(39.9289,116.3883)。同时我们必须指出的是,我们必须使用名叫"osm"的plugin接口。以前一下诺基亚的手机,使用的是名为"nokia"的plugin。为了正确使用这个接口,我们必须在QML文件中调用如下的库:
import QtLocation 5.0
import QtPositioning 5.0
运行我们的程序,我们可以看到如下的结果:
2)使用Position接口
我们可以通过如下的方式得到我们所在的位置:
PositionSource {
id: me
active: true
updateInterval: 1000
onPositionChanged: {
console.log("lat: " + position.coordinate.latitude + " longitude: " +
position.coordinate.longitude);
console.log(position.coordinate)
}
}
Map {
id: map
plugin : Plugin {
name: "osm"
}
anchors.fill: parent
zoomLevel: 12
center: me.position.coordinate
// center: QtPositioning.coordinate(39.9289 , 116.3883)
Label {
anchors { top: parent.top; left: parent.left; margins: units.gu(2) }
text: "Position is: (" + me.position.coordinate.latitude + ", " +
me.position.coordinate.longitude + ")";
fontSize: "large"
color: "red"
}
}
同时我们在Map里用红色的字体显示当前的位置。 运行的结果显示在如下的图中。我们可以改变zoomLevel来看不同的大小:
3)使用MapCircle来显示中心点
虽然我们在上面已经使用了地图来显示当前的位置,但我们还是想用一个明显的标志来显示当前的位置。这里我们用MapCircle来做这件事。这样我们的代码如下:
Map {
id: map
plugin : Plugin {
name: "osm"
}
anchors.fill: parent
zoomLevel: 12
center: me.position.coordinate
// center: QtPositioning.coordinate(39.9289 , 116.3883)
MapCircle {
center: me.position.coordinate
radius: units.gu(20)
color: "red"
}
Label {
anchors { top: parent.top; left: parent.left; margins: units.gu(2) }
text: "Position is: (" + me.position.coordinate.latitude + ", " +
me.position.coordinate.longitude + ")";
fontSize: "large"
color: "red"
}
}
运行的结果如下:
源码在如下网址可以找到:
在MX4手机上运行的显示图片为:
这个显示的照片在我的家的附近,应该是准确的地址。我是使用wifi定位的。

本文详细介绍了在Ubuntu手机上如何使用Map和Position接口实现地图展示、获取当前位置等功能,包括使用QMLMap、PositionSource等组件,并提供了代码示例和运行效果展示。
2002

被折叠的 条评论
为什么被折叠?



