我正在建立一个简单的照片应用程序,需要当前图片的GPS坐标。我已经了解了在qml中创建和检查PositionSource元素的基础知识(看起来还不错)。但是当我访问坐标和时间戳时,它给了我无效的时间和NaN。
我已经在qml和.pro文件中添加了导入QtPositioning 5.3和QT += qml快速定位
下面是我的PositionSource元素
PositionSource {
id: src
active: true
preferredPositioningMethods: PositionSource.SatellitePositioningMethods
Component.onCompleted: {
src.start()
src.update()
var supPos = "Unknown"
if (src.supportedPositioningMethods == PositionSource.NoPositioningMethods) {
supPos = "NoPositioningMethods"
} else if (src.supportedPositioningMethods == PositionSource.AllPositioningMethods) {
supPos = "AllPositioningMethods"
} else if (src.supportedPositioningMethods == PositionSource.SatellitePositioningMethods) {
supPos = "SatellitePositioningMethods"
} else if (src.supportedPositioningMethods == PositionSource.NonSatellitePositioningMethods) {
supPos = "NonSatellitePositioningMethods"
}
console.log("Position Source Loaded || Supported: "+supPos+" Valid: "+valid)
}
onPositionChanged: {
var coord = src.position.coordinate;
console.log("Coordinate:", coord.longitude, coord.latitude);
}
}当我在iPhone8.1(IPhone4s)上运行这个应用程序时,它给出了AllPositioningMethods和Valid True。但是当我打电话的时候:
function getPos() {
var coord = src.position.coordinate;
posTest.text = "Coordinates lat:"+coord.latitude+" lon:"+coord.longitude+" time:"+src.position.timestamp
}它只是给了我NaN NaN和无效的时间戳...任何人尝试在真实设备上使用PositionSource元素并使其正常工作...?我很快就会在其他设备上试用它。ios和android..
更新*似乎在安卓4.4.4 (MotoX)上运行良好
发布于 2017-02-11 03:35:36
我遇到了同样的问题。两个关键项目:
QT += positioning包含在.pro文件的内部版本中。<key>NSLocationWhenInUseUsageDescription</key>
<string>Explanation to user.</string>或
<key>NSLocationAlwaysUsageDescription</key>
<string>Explanation to user.</string>无论您添加的是哪一个,它都会提示输入。
发布于 2014-10-30 19:15:08
如果您尚未为应用程序启用位置服务,则会发生这种情况。您可以在设置中启用它。
http://www.imore.com/how-grant-restrict-access-location-iphone-ipad
https://stackoverflow.com/questions/26616325
复制相似问题