Ios 通过Swift 2和CLLocation获得速度
我尝试在Swift 2中制作一个显示所有GPS信息的应用程序。 我可以恢复纬度、长度、水平精度、垂直精度、高度、距离和帽子,但我无法恢复速度,而我到达了目标C:-( 谢谢你的帮助 下面是我的代码:Ios 通过Swift 2和CLLocation获得速度,ios,performance,swift2,cllocationmanager,Ios,Performance,Swift2,Cllocationmanager,我尝试在Swift 2中制作一个显示所有GPS信息的应用程序。 我可以恢复纬度、长度、水平精度、垂直精度、高度、距离和帽子,但我无法恢复速度,而我到达了目标C:-( 谢谢你的帮助 下面是我的代码: import UIKit import CoreLocation class ViewController: UIViewController, CLLocationManagerDelegate { var running = false var pause = false var locati
import UIKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
var running = false
var pause = false
var locationManager: CLLocationManager = CLLocationManager()
var startLocation: CLLocation!
@IBOutlet weak var latitudeLabel: UILabel!
@IBOutlet weak var longitudeLabel: UILabel!
@IBOutlet weak var horizontalAccuracyLabel: UILabel!
@IBOutlet weak var verticalAccuracyLabel: UILabel!
@IBOutlet weak var capLabel: UILabel!
@IBOutlet weak var altitudeLabel: UILabel!
@IBOutlet weak var partielLabel: UILabel!
@IBOutlet weak var distanceLabel: UILabel!
@IBOutlet weak var vitesseLabel: UILabel!
@IBOutlet weak var moyenneLabel: UILabel!
@IBOutlet weak var timerLabel: UILabel!
@IBOutlet weak var totalDistanceLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.startUpdatingHeading()
startLocation = nil
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func startDistance(sender: AnyObject) {
startLocation = nil
running = true
}
@IBAction func stopDistance(sender: AnyObject) {
running = false
}
@IBAction func resetDistance(sender: AnyObject) {
startLocation = nil
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let latestLocation: AnyObject = locations[locations.count - 1]
latitudeLabel.text = String(format: "%.4f",latestLocation.coordinate.latitude)
longitudeLabel.text = String(format: "%.4f",latestLocation.coordinate.longitude)
horizontalAccuracyLabel.text = String(format: "%.4f",latestLocation.horizontalAccuracy)
verticalAccuracyLabel.text = String(format: "%.4f",latestLocation.verticalAccuracy)
altitudeLabel.text = String(format: "%.4f",latestLocation.altitude)
if running == true {
if startLocation == nil {
startLocation = latestLocation as! CLLocation
}
let distanceBetween: CLLocationDistance =
latestLocation.distanceFromLocation(startLocation)
distanceLabel.text = String(format: "%.2f", distanceBetween)
}
}
func locationManager(manager: CLLocationManager, didUpdateHeading newHeading: CLHeading)
{
capLabel.text = String(format: "%.4f",newHeading.magneticHeading)
}
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
}
}
我测试了这段代码:
vitesseLabel.text = String(CLLocationSpeed())
但是速度保持在0.00你不知道速度的原因是你没有写任何代码,在那里你问CLLocation的
速度
你不知道速度的原因是你没有写任何代码,在那里你问CLLocation的速度
我终于找到了,下面是代码:
var speed: CLLocationSpeed = CLLocationSpeed()
speed = locationManager.location!.speed
vitesseLabel.text = String(format: "%.0f km/h", speed * 3.6)
我终于找到了,下面是代码:
var speed: CLLocationSpeed = CLLocationSpeed()
speed = locationManager.location!.speed
vitesseLabel.text = String(format: "%.0f km/h", speed * 3.6)
你只需要在一个开放的位置通过步行或跑步进行测试。然后你就可以得到速度。你只需要在一个开放的位置通过步行或跑步进行测试。然后你就可以得到速度。你在第一行分配变量,然后在第二行覆盖它。那么分配的目的是什么?你在第二行分配变量第一行然后在第二行覆盖它。那么分配的目的是什么呢?