14

MKMapView を使用して位置座標を設定すると、プログラムがクラッシュします。ログ:

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: 'Invalid Region <center:+112.57075000, +37.87049600 span:+0.05165163, +0.43945312>'

私のプログラムのスパンは

MKCoordinateSpan span;
span.latitudeDelta = .05;
span.longitudeDelta = .02;

コーディング後:

    self.mMKMapview.region = [self.mMKMapview regionThatFits:region];

ログが示すように、スパンは :+0.05165163、+0.43945312 に変更されます

誰か助けてください、私はここで 2 日間立ち往生しています。

ありがとう!

4

3 に答える 3

20

問題はcenter座標です:

+112.57075000、+37.87049600

緯度は -90 ~ +90 でなければならないため、+112.57075 は範囲外です。

中心座標がどのように設定されているかを確認してください。または、データが逆になっている可能性があります。


regionThatFitsまた、リージョンを通常どおりに設定すると (つまり、 を呼び出すだけで)、マップ ビューが自動的に 呼び出すため、明示的に呼び出す必要はありませんsetRegion。ところで、マップ ビューのサイズやズーム レベルに合わせて、必要に応じてマップ ビューのスパンを調整するのは通常のことです。

于 2012-10-27T13:35:54.980 に答える
2

CLLocationCoordinate2DIsValidを使用することをお勧めします

のようなもの

guard CLLocationCoordinate2DIsValid(centerLat) else {

     return
}
于 2019-07-26T16:50:05.230 に答える