2つの場所の間の距離を取得しようとしていますが、私は常に間違った値を取得します。2つの場所の間の距離を正確に測定しない
var startLoction: CLLocation!
var startLoction: CLLocation!
@IBAction func getCurrLocation(){
startLoction = currLocation
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
currLocation = locations.last!
if currLocation.horizontalAccuracy > 0{
var distance = CLLocationDistance(DBL_MAX)
if let location = self.startLoction {
distance = currLocation.distance(from: location)
realTimeDistanceLabel.text = String(format: "%.2f", distance)
}
}
}
問題: 1.私はまだ滞在した場合、距離は、時にはそれが15メートルよりも大きな数であってもよい、増加します。ここでコードがありますそれは常に大きな数字で始まります。 2. 10mまたは20mを歩いてから直進して歩くと、時々距離は増加しますが減少しません。 3.私が大きな円の周りを歩くとき、距離は相対的に少し正確な値になります。
また、currLocation.horizontalAccuracy > 0 && currLocation.horizontalAccuracy < 100
を追加しようとしました。また、prevLocation >= (currLocation.horizontalAccuracy * 0.5
からstackOverflowの回答を試みましたが、まだ正確な値を取得できません。
それを正しくするための他のアイデアはありますか?
ありがとうございました。
'manager.desiredAccuracy'は何に設定されていますか? –
@DávidPásztor 'locationManager.distanceFilter = kCLDistanceFilterNone'と' locationManager.desiredAccuracy = kCLLocationAccuracyBest' – jdleung