小编Neu*_*s3r的帖子

iOS6中的MapView不会在北纬75度以上显示某些缩放级别

此代码设置以指定位置为中心的默认缩放级别viewDidLoad.该代码在以前版本的iOS中运行良好:

CLLocationDistance visibleDistance = 100000; // 100 kilometers
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location, visibleDistance, visibleDistance);
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region];
.
.
.
[mapView setRegion:adjustedRegion animated:NO];
Run Code Online (Sandbox Code Playgroud)

但是,在iOS6中,对于纬度高于~75(> 75.1)的位置,应用程序崩溃并显示以下消息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'Invalid Region <center:nan, nan span:nan, nan>'
Run Code Online (Sandbox Code Playgroud)

我发现对于给定的缩放级别mapView无法在MKCoordinateRegion内部设置正确.[mapView regionThatFits:region]将所有值返回为nan.如果我region直接使用变量,它只显示默认地图(整个世界).

经过一些测试后,我发现通过调整visibleDistance我可以让代码正常工作.魔法距离似乎略高于20公里(对于一系列纬度和纬度的Delta值,大约在22到23公里之间).这只发生在北纬地区(-80工作正常).

初始定位后,地图可在任何位置工作.看起来Apple改变了可见地图区域的初始化方式.我正在为受影响的区域使用更高的缩放级别作为解决方法.有没有其他方法可以使它正常工作?

mapkit mkmapview ios ios6 ios6-maps

23
推荐指数
2
解决办法
5916
查看次数

标签 统计

ios ×1

ios6 ×1

ios6-maps ×1

mapkit ×1

mkmapview ×1