此代码设置默认缩放级别,该缩放级别围绕viewDidLoad
中的指定位置为中心。
该代码在iOS的早期版本中运行良好:
CLLocationDistance visibleDistance = 100000; // 100 kilometers
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location, visibleDistance, visibleDistance);
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region];
.
.
.
[mapView setRegion:adjustedRegion animated:NO];
但是,在iOS6中,纬度大于或等于75(> 75.1)的位置的应用会崩溃,并显示以下消息:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'Invalid Region <center:nan, nan span:nan, nan>'
我发现对于给定的缩放级别
mapView
无法在内部设置适当的MKCoordinateRegion
。 [mapView regionThatFits:region]
将所有值返回为nan
。如果直接使用region
变量,它将仅显示默认 map (整个世界)。经过一些测试,我发现通过调整
visibleDistance
可以使代码正常工作。魔术距离似乎略高于20公里(对于一系列纬度和latitudeDelta值,介于22至23公里之间)。这仅发生在北部纬度上(-80可以正常工作)。
初始定位后, map 可以在任何位置工作。看起来苹果公司改变了可视 map 区域的初始化方式。我正在对受影响的区域使用更高的缩放级别,这是一种解决方法。还有其他方法可以使其正常工作吗?
最佳答案
CLLocationDistance visibleDistance = 100000; // 100 kilometers
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location, visibleDistance, visibleDistance);
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region];
.
.
.
[mapView setRegion:adjustedRegion animated:NO];
会的..
关于ios - iOS6中的MapView在北纬> 75度时不会显示某些缩放级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12568980/