CLLocationManager를 사용하여 이동 한 거리를 계산하고 레이블 내부에 거리를 표시하려고합니다. 위치 사용을 요청했지만 라벨에 아무것도 표시되지 않습니다. xCode 시뮬레이터 내부에서 드라이브를 시뮬레이션하려고 시도했지만 아무 소용이 없습니다. 나는 앱 내부에지도가 표시되어 작동합니다. 내 위치는 추적하지만 그 모든 것은 작동합니다.스위프트 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
거리를 계산하여 레이블에 넣지 만 레이블은 절대로 변경되지 않습니다. –
마침내'print (distanceBetween)'을 수행하고 출력을 말하십시오. –