1

我必须做错事,我的代码如下:

[_mapView setRegion:region animated:YES]; 

当我为它设置一个非常大的区域时,该应用程序在 5.0、5.1 和 6.1 模拟器中崩溃。

该地区的中心是

  • 纬度:39.0055301546386
  • 伦敦:-96.8836582904965
  • 跨度:纬度 75382.1245843343 经度 96613.0758612126

然后我将代码更改为

[_mapView setRegion:[_mapView regionThatFits:region] animated:YES];

该代码适用于 OS 5.0、5.1,但在 OS 6.1 上仍会崩溃。

任何想法?

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid Region ' * First throw call stack: (0x2570012 0x206ee7e 0x25f8fb1 0x1f8078d 0xab41f 0xc8a1c7 0xc8a232 0xc8a4da 0xca18e5 0xca19cb 0xca1c76 0xca1d71 0xca289b 0xca2e93 0xca2a88 0xffee63 0xff0b99 0xc8add2 0x91456 0xd7f23 0x2082705 0xbac2c0 0xbac258 0xc6d021 0xc6d57f 0xc6c6e8 0xe701d3 0x2538afe 0x2538a3d 0x25167c2 0x2515f44 0x2515e1b 0x2c227e3 0x2c22668 0xba8ffc 0x4c2fd 0x2725 0x1)libc++abi.dylib:终止调用抛出异常

4

2 回答 2

4

我怀疑这个区域的“跨度”是75382.1245843343引发96613.0758612126问题的原因。该地区将覆盖一个周长超过 800 万公里的世界——而不是我们自己的世界。尝试使用实际定义地球上一个区域的较小跨度?

于 2013-02-05T18:53:20.557 回答
0

您应该从 API 返回的跨度中减去一些纬度/经度

于 2013-02-05T19:06:52.833 回答