OK、これが取り引きです:
シンプルとアドバンスの 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?