2012-04-22 9 views
0

いいえ、ここに契約があります:MapKit:ちょっとした形の新しいインスタンスに正確に同じ投影を転送するにはどうすればよいですか?

私は2つのビューを持っています:シンプルとアドバンス。 iPad上では、位置を示すために移動できるマーカーが付いた大きな魅力的な地図が表示されます。

各ビューには、MkMapViewの別のインスタンスがあります。一方を他方に切り替えると、地図はまったく同じ位置とズームレベルに保たれ、同じマップであるかのように感じられます。

ただし、マップビューの形状は、ビューごとに若干異なります。これは、高度な検索で地図上に多くのものがあるためです。私は(これは抽象スーパークラスからのコードであるため、両方のインスタンスがそれを得る)マップを開くときにように、私は、領域マーカ位置を設定

[mapSearchView setRegion:[mapSearchView regionThatFits:[[BMLTAppDelegate getBMLTAppDelegate] searchMapRegion]]]; 
[myMarker setCoordinate:[[BMLTAppDelegate getBMLTAppDelegate] searchMapMarkerLoc]]; 

searchMapRegionとsearchMapMarkerLocは静的であり、そして現在表示されている地図の地域とマーカーの場所(地図の中心)を反映します。マップは若干異なる形状であるため調整のビットが常にある、

は、ここで問題です。これは前後に「バウンス」することができるので、切り替えたたびに地図のズームが減少し続け、世界全体を見ることができます。

私はregionThatFitsを使用するかどうかは関係ありません。同じことはしても、このコードで、起こる:

[mapSearchView setRegion:[[BMLTAppDelegate getBMLTAppDelegate] searchMapRegion]]; 
[myMarker setCoordinate:[[BMLTAppDelegate getBMLTAppDelegate] searchMapMarkerLoc]]; 

私が欲しいのは、表示される正確に同じズームとセンターのためです。私は、高度なビューのカットが少し気にしない。

$#@をどうすれば入手できますか? MapKitを使用してズームファクタを調整しないでください。

答えて

0

私はスケールと中心点を維持し、複数のMKMapViewsによって使用されるカスタムモデルのレイヤークラスを作成することでこれを解決しました。それはかなりうまくいくが、MapKitは時にはそのディテントの1つに合うようにスケールを微調整することがある。

関連する問題