2011-01-31 11 views
0

私のiPhoneアプリで地図を回転しようとしているときにこの問題に直面していますiOSで地図を回転することに関して

ビューがクリップされ、回転も起こります。私はクリッピングを避けたい。任意のヒント ?

相続コード:

viewToRotate.layer.transform = CATransform3DMakeRotation(0.8, 0., 0., 1.); 
+0

「ビューがクリップされる」とはどういう意味ですか? –

+0

@Ole、私は画面の一部が空白であることを意味します... – Ahsan

答えて

0

あなたは今までに解決策を考え出すでしたか?

私ができる唯一の方法は、Interface BuilderのMapViewを実際にカバーする画面領域のサイズよりも大きくすることでした。次に、MapViewの中心がその中心が狭い視認可能な領域。

ローテーションは、組み込みのマップアプリでの動作と同様に機能していたようです。

私の推測では、Googleからストリーミングされた画像タイルが、必ずしも目に見えるわけではなくても、「空白を埋める」十分な領域をカバーするようにする必要があります。

小さな計算を適用すると、MapViewのサイズを変更し、クリッピングを無効にすることができますが、必要以上に多くのタイルは必要ありません。

2

地図を3Dで回転させる必要がありますか?そうでない場合は、CGAffineTransformMakeRotationを使用してください(ラジアン単位の角度が必要なので注意してください)。また

、あなたのマップをクリップしたくない場合は、あなたが

http://img593.imageshack.us/img593/4498/calculatemapboundswhenr.png

(それは大きな見て新しいタブで開く)下の画像のように、あなたのマップを大きくする必要がありますまず、上記の画像で指示されている矩形(可視の地図)の対角線を計算する必要があります(これは、あなたの四角形よりも大きな最小の円の半径になるため「半径」と呼ばれます)。

第2に、半径を使用して、(最小の)四角形を計算する必要があります。この四角形は、マップをクリッピングせずに見ることができます。この正方形はマップのboundsを設定するために使用されます(注意:frameではありません - 回転を使用する場合はframe - boundsおよび/またはcenter)を使用しないでください。

この正方形が、表示可能な地図矩形の中央に配置されていることを確認してください(正方形のXピクセルは小さい矩形の下にあります... Yピクセルは小さな矩形の左と右です)。

希望すると助かります!

関連する問題