Dan*_*Dan 2 xcode mapkit ios mapbox swift
我正在寻找一个简单的导航应用程序,它总是根据用户的方向旋转。我已经看到了一些 Android 的答案,但还没有找到任何适用于 Swift 的东西。
我尝试了以下方法,但它对我不起作用,并且不确定这是否让我更接近我正在寻找的东西。
let newCam = MGLMapCamera()
newCam.heading = 90
mapView.setCamera(newCam, animated: true)
Run Code Online (Sandbox Code Playgroud)
我对 Xcode 和 Swift 还很陌生,理解起来有困难,所以请放轻松!
mapView 有一个属性:direction,您可以设置。更改此属性的值会立即更新地图视图。如果您想以动画方式进行更改,请改用该-setDirection:animated:方法。或者您可以使用以下方法:
func setCenter(_ centerCoordinate: CLLocationCoordinate2D, zoomLevel: Double, direction: CLLocationDirection, animated: Bool)
Run Code Online (Sandbox Code Playgroud)
方向在哪里
地图的新方向,以相对于正北的度数进行测量。
您可以定期调用此函数,使用 CLLocationManager 上的 startUpdatingHeading 方法计算距北的偏移量。如果您需要的话,此方法还有另一个版本,带有完成处理程序。
** 编辑 **
您可以使用以下代码来提取手机的方向。它在此处打印到控制台(自然地从真实设备),但您可以获取数字(度)并在代码中确定设备指向的距离有多远。
import UIKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
var locationManager:CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.startUpdatingHeading()
}
func locationManager(_ manager: CLLocationManager, didUpdateHeading heading: CLHeading) {
print(heading.magneticHeading)
}
}
Run Code Online (Sandbox Code Playgroud)
我现在去看牙医,但大约一个小时后会回来检查。
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |