MKMapView
を上に重ねた別のカスタムビュー(下の「レーダー」)を重ねて表示しています。レーダーは、常に中央に置かれ、サイズ変更されない静的ビューです。マップアノテーションではありません。アイデアは、ユーザーがスクロールして、レーダーは、彼らが興味を持っている領域を覆うまで、マップをズームすることができるということです。ビューをMKMapKitから地域に変換する
レーダーでカバーMKCoordinateRegion
を取得するための最良の方法は何? map.region
のこれらの、
print("map region: \(mainView.map.region)")
// region: MKCoordinateRegion(center: __C.CLLocationCoordinate2D(latitude: 37.132839999999987, longitude: -95.785579999999968), span: __C.MKCoordinateSpan(latitudeDelta: 74.933954323122975, longitudeDelta: 61.276015749875469))
let radarRegion = mainView.map.convert(mainView.radar.frame, toRegionFrom: mainView.map)
print("radar region: \(radarRegion)")
// radar region: MKCoordinateRegion(center: __C.CLLocationCoordinate2D(latitude: 32.559875544717606, longitude: -95.760911716686806), span: __C.MKCoordinateSpan(latitudeDelta: 21.752004541359227, longitudeDelta: 25.901697478812096))
私は同じ中心座標を持っているradarRegion
を期待する、とスパン約半分:私はconvert:toRegionFromView:
試してみたが、私は私が期待する結果が表示されません。どちらも当てはまりません。
ここには、私のセットアップを複製するsmall projectがあります。
ありがとう@ファヒム、私はそのショットを与えたが、私は多くの改善を見ていない。階層に関しては、 'mainView'は' mapView'と 'radar'の両方を含む' UIView'です。私は 'mainView.map.convert(mainView.radar.frame、toRegionFrom:mainView.map)'と 'mainView.map.convert(mainView.radar.frame、toRegionFrom:mainView.radar)'を試みましたが、期待しています。 –
しかし、 'mainView.map'は2番目のパラメータにとって正しいものではありませんか? radar.frameは 'mainView'座標にあるので' mainView'とすべきだと思いますので、 'mainView.map.convert(mainView.radar.frame、toRegionFrom:mainView)'ではないでしょうか? – Fahim
ああ、また動作しません。私が試したそれぞれの組み合わせの結果を追加するのはどんな使い方になると思いますか? –