Я пытаюсь вычислить пройденное расстояние с помощью CLLocationManager и отобразить расстояние внутри метки. Запрос на использование работы с местоположением, но на этикетке ничего не отображается. Я попытался имитировать движение на драйвере внутри симулятора xCode, но безрезультатно. У меня есть карта, отображающая внутри приложения, и это работает, она отслеживает мое местоположение, но это все, что работает.Расстояние не рассчитывается в Swift 3
Heres мой метод locationManager:
func locationManager(manager:CLLocationManager, didUpdateLocations locations:[AnyObject]) {
// Map
theLabel.text = "\(locations[0])"
myLocations.append(locations[0] as! CLLocation)
let spanX = 0.007
let spanY = 0.007
let newRegion = MKCoordinateRegion(center: theMap.userLocation.coordinate, span: MKCoordinateSpanMake(spanX, spanY))
theMap.setRegion(newRegion, animated: true)
if (myLocations.count > 1){
let sourceIndex = myLocations.count - 1
let destinationIndex = myLocations.count - 2
let c1 = myLocations[sourceIndex].coordinate
let c2 = myLocations[destinationIndex].coordinate
var a = [c1, c2]
let polyline = MKPolyline(coordinates: &a, count: a.count)
theMap.add(polyline)
}
// Labels
let latestLocation: AnyObject = locations[locations.count - 1]
lat.text = String(format: "%.4f", latestLocation.coordinate.latitude)
long.text = String(format: "%.4f", latestLocation.coordinate.longitude)
horizAcc.text = String(format: "%.4f", latestLocation.horizontalAccuracy)
altitude.text = String(format: "%.4f", latestLocation.altitude)
vertAcc.text = String(format: "%.4f", latestLocation.verticalAccuracy)
if startLocation == nil {
startLocation = latestLocation as! CLLocation
}
let distanceBetween = (latestLocation.distance(from: startLocation))
distance.text = String(format: "%.2f", distanceBetween)
}
Любая помощь очень ценится! При необходимости я могу предоставить больше кода.
Не можете описать, что именно не работает? Широко говорить «все, что работает» – alexburtnik
Я вычисляю расстояние и помещаю его в ярлык, но ярлык никогда не меняется. –
do 'print (distanceBetween)' наконец и сообщить вывод –