如何在 Swift 中使用磁航向?
How to use magneticHeading in Swift?
我正在尝试制作一个简单的脚导航器,使用箭头图像旋转以指示要遵循的方向并不断刷新。
使用 magneticHeading
我发现错误 unexpectedly found nil while unwrapping an Optional value
,也许我忘记了什么。
如何正确使用磁航向?
var northLatitude :CLLocationDegrees
var latitude :CLLocationDegrees = 46.0
var longitude :CLLocationDegrees = 7.0
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
longitude = manager.location.coordinate.longitude
latitude = manager.location.coordinate.latitude
var buildingLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)
var regionOfInterest:MKCoordinateRegion = MKCoordinateRegionMake(buildingLocation, span)
self.mapView.setRegion(regionOfInterest, animated: true)
self.mapView.addAnnotation(buildingAnnotation)
northLatitude = manager.heading.magneticHeading //ERROR
}
您可以计算出箭头应指向的角度,然后使用图像视图的变换 属性 来改变方向。伪代码将是这样的。
func onPositionChange()
{
UIView.animateWithDuration(1.0, animations:
{
var angle_in_degrees:CGFloat = 10 // Calculated Angle.
var angle_in_radians = (angle_in_degrees * 3.1415) / 180.0
self.imgView.transform = CGAffineTransformMakeRotation(angle_in_radians)
})
}
我正在尝试制作一个简单的脚导航器,使用箭头图像旋转以指示要遵循的方向并不断刷新。
使用 magneticHeading
我发现错误 unexpectedly found nil while unwrapping an Optional value
,也许我忘记了什么。
如何正确使用磁航向?
var northLatitude :CLLocationDegrees
var latitude :CLLocationDegrees = 46.0
var longitude :CLLocationDegrees = 7.0
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
longitude = manager.location.coordinate.longitude
latitude = manager.location.coordinate.latitude
var buildingLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)
var regionOfInterest:MKCoordinateRegion = MKCoordinateRegionMake(buildingLocation, span)
self.mapView.setRegion(regionOfInterest, animated: true)
self.mapView.addAnnotation(buildingAnnotation)
northLatitude = manager.heading.magneticHeading //ERROR
}
您可以计算出箭头应指向的角度,然后使用图像视图的变换 属性 来改变方向。伪代码将是这样的。
func onPositionChange()
{
UIView.animateWithDuration(1.0, animations:
{
var angle_in_degrees:CGFloat = 10 // Calculated Angle.
var angle_in_radians = (angle_in_degrees * 3.1415) / 180.0
self.imgView.transform = CGAffineTransformMakeRotation(angle_in_radians)
})
}