2009-08-30 6 views
2

MKMapKitのリージョンプロパティを設定するたびに、スパンが2倍になります。例えばiPhoneの奇妙な動作MKMapKit

MKCoordinateRegion currentRegion = map.region; // assume the current center of region is around New-York and the span is 2 by 2 
map.region = map.region; // assign the region to itself 
MKCoordinateRegion newRegion = map.region; 
// the span of newRegion is different (almost twice than currentRegion) 

ここで何が起こっているのか?

+0

また、地域プロパティの動作が異常であることに気付きました。私の場合、これは、地域が大きい(100キロメートル以上の幅)ときに起こった。小さなスケールでは、これは起こらなかった。 –

+1

更新:このバグはシミュレータにのみ表示されます。 iPhoneのMapKitは正しく動作します。 –

答えて

1

MapViewのregion.centerも設定していますか? MKMapViewの域特性のAPIの説明で

ルック:

「のみセンターは、地域の座標を変更するには、まだスパンが暗黙のうちにを変更することがありますこれは距離がによって表されるという事実によるものです。地図のビューでは、新しい位置を考慮してスパンを調整する必要があります。ズームレベルを変更せずに中心座標を変更する場合は、代わりにcenterCoordinateを使用してください。

これは、region.centerを変更したときの中心座標に基づいて計算された値で、地域のスパン設定を上書きできるということです。

+0

いいえ、私はregion.centerを設定しません。それは私が投稿したコードです。マップの領域を独自の領域に設定すると、スパンが2倍になります。 –

0

私はまた、シミュレータとデバイスの両方でそれを取得... iphone SDK 3.0、xcode 3.2。

SDK 3.1用のシミュレータでも、それを試してみると3.1のデバイスがありません。

どのようにしてこのバグを見つけられなかったでしょうか?あなたの地域の読み込みと保存よりも基本的なことは何ですか?

マップキットには他にもたくさんのバグがあります。 : - /それはかなり弱いです!

あなたがregionThatFitsを呼び出すと、はほぼの同じ地域になります。あなたが地域を設定しようとすると、実際に近くに何かが設定されます。(必ずしもそうではありませんが)