0

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?

4

1 に答える 1

0

参考までに。スケールと中心点を維持し、複数の MKMapViews で使用されるカスタム モデル レイヤー クラスを作成することで、これを解決しました。これはかなりうまく機能しますが、MapKit は縮尺を非常にわずかに調整して、その「戻り止め」の 1 つに合わせることがあります。

于 2012-06-06T20:05:55.430 に答える