蓝点不出现在地图上。CLLocation管理器和self.mappview.userLocation.coordinate值之间似乎存在某种断开连接。
CLLocation管理器正确返回Apple校园坐标,但mapView.userLocation.coordinate值对于纬度和经度都返回0,0。
我已经调试了好几个小时了。
更多信息如下:
在viewDidAppear和viewDidLoad中,我将用户的当前位置打印到控制台,如下所示:

print(self.mapView.userLocation.coordinate)

这是在控制台中呈现的输出:
CLLocationCoordinate2D(纬度:0.0,经度:0.0)
这就是我的MapViewController的样子:
import UIKit
import CoreLocation
import MapKit

class MapViewController: UIViewController, MKMapViewDelegate {

@IBOutlet weak var mapView: MKMapView!
var manager: CLLocationManager? = CLLocationManager()

override func viewDidLoad() {
    super.viewDidLoad()

    // map stuff
    manager?.delegate = self
    manager?.desiredAccuracy = kCLLocationAccuracyBest
    self.mapView.delegate = self

    // print user's current location to console
    print("user location in view did load:")
    print(self.mapView.userLocation.coordinate)

}

override func viewDidAppear(_ animated: Bool) {
    manager?.requestAlwaysAuthorization()
    manager?.startUpdatingLocation()

    self.mapView.showsUserLocation = true
    self.mapView.userTrackingMode = .follow

    // print user's current location to console
    print("user location in view did appear:")
    print(self.mapView.userLocation.coordinate)

    animateMapToUserLocation()
}

}
笔记:
我已将相关隐私消息添加到Info.plist文件中。
情节提要中的地图视图通过实心圆连接到正确的ViewController。
MapViewController的实例化如下:
let storyboard=UIStoryboard(名称:“Main”,bundle:bundle.Main)
设mapVC=storyboard.instantiateViewController(带标识符:“mapVC”)为?地图视图控制器
自我。现在(mapVC!,动画:真,完成:无)

最佳答案

你实现了viewForAnnotation功能了吗?您是否正在检查是否正在为MKUserLocation绘制(或未能绘制)其他类型的管脚?
例如

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    if annotation is MKUserLocation {
        return nil
    }
    ...
}

同时检查设置>隐私>定位服务>你的应用
ios - 在iOS中,使用Swift,我想显示用户的位置,但蓝点未出现在MapView上-LMLPHP

关于ios - 在iOS中,使用Swift,我想显示用户的位置,但蓝点未出现在MapView上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52678390/

10-11 19:47