1

我有一个函数可以在所有注释之间“集中”视图,该函数取自 SO 上的一种编码器:https ://stackoverflow.com/a/7200744/1497534

一切正常,直到您的注释彼此相距很远。可以在旧金山和中国中部放置注释,效果很好。使视图居中的功能会将您置于欧洲,因为缩放级别已达到最大值。这种行为是我想要的。

但是,如果您在旧金山和日本放置一个图标,应用程序会崩溃并出现以下异常:

无效区域<center:+39.84104733, +8.77916614 span:+178.18954061, +450.00000000>

另请注意,这只发生在纵向模式下。景观可以处理一切。

这是因为它试图缩放的范围超过了 mapkit 的缩放范围吗?

它是否与最初加载注释的方式有关,然后使用 dequeueWithReuseIdentifier 出列?我在 viewWillAppear 中有这个:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(createAnnotations:) name:@"CreateAnnotations" object:nil];

我已经碰壁了,希望得到一些反馈。

4

1 回答 1

0

问题可能是因为您制作的区域跨越了第 180 条子午线。我不确定解决方案,但您可以尝试从超过 360 的任何经度中减去 360。(同样,我不知道这是否可行,只是一个想法)。

我本来以为中国中部和旧金山也会有同样的问题。它也可能是纬度值。我认为地图视图的纬度仅达到北纬 80 度和南纬 -80 度(纬度 160 度三角洲)。在设置之前尝试将不同的值替换到区域中以查看导致问题的原因。

于 2013-06-21T22:11:36.207 回答