我正在开发一个与Runtastic非常相似的应用程序。 我有一个问题是要了解GPS信号的质量。 如果我理解你需要使用属性horizontalAccuracy但我不明白什么是信号质量的范围可以被视为优秀,良好或无信号。 你能帮助我吗 ? 我在互联网上找到了几个例子但是当我去应用这些值时,我没有得到我想要的东西。 这是我的代码:
dispatch_async(dispatch_get_main_queue()) {
//assign new image
if(newLocation.horizontalAccuracy < 0){
//No Signal
self.qualitaSegnale.text = "\(newLocation.horizontalAccuracy)";
self.imageGPS.image = UIImage(named: "gps_signal_ko");
}
else if(newLocation.horizontalAccuracy > 163){
self.qualitaSegnale.text = "\(newLocation.horizontalAccuracy)";
self.imageGPS.image = UIImage(named: "gps_signal_peer");
}
else if (newLocation.horizontalAccuracy > 48){
self.qualitaSegnale.text = "\(newLocation.horizontalAccuracy)";
self.imageGPS.image = UIImage(named: "gps_signal_peer");
}
else {
self.qualitaSegnale.text = "\(newLocation.horizontalAccuracy)";
self.imageGPS.image = UIImage(named: "gps_signal_ok");
}
}
感谢您的所有可用性。
蒙特拉
答案 0 :(得分:1)
所以低于48的任何东西都被认为是好的。我会说10以下的东西都很棒。
资料来源:我最近一直在搞乱类似的东西,看起来我能得到的最佳读数是半径5米。我认为5米是目前最好的读数。
除了:
if(newLocation.horizontalAccuracy < 0){
我也会检查:
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
因为如果horizontalAccuracy小于0,可能会出错。