如何重现错误:
let mapView = MKMapView.init(frame: UIScreen.mainScreen().bounds)
mapView.region.center = CLLocationCoordinate2D.init(latitude: 60, longitude: 100)
mapView.region.span = MKCoordinateSpanMake(20, 20)
print(mapView.region.center)
self.view = mapView
打印语句会打印出这个:
CLLocationCoordinate2D(latitude: 44.880507991448255, longitude: 100.00000000000004)
问题是我实际上在第 2 行将纬度设置为 60。但是结果纬度是 44.88x。而且我尝试过 45 以上的其他值,它们也不正确。有任何想法吗?谢谢!
Best Answer-推荐答案 strong>
这似乎是 Swift 的一个问题。如果你在 Objective-C 中尝试这段代码
mapView.region.center = CLLocationCoordinate2D.init(latitude: 60, longitude: 100)
编译器给出一个错误表达式不可赋值 。正确的做法是创建一个新区域,然后将该区域分配给 map View :
let region = MKCoordinateRegionMake(CLLocationCoordinate2DMake(60.0,100.0), MKCoordinateSpanMake(20, 20))
mapView.region = region
关于iOS MKMapView 不接受大于 45.x 的纬度值?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/37725911/
|