0

少しでも mapRectThatFits がわかりません。簡単なコード行を次に示します。

MKMapRect zoomRectNorm = [mapView mapRectThatFits:zoomRect];
// BREAKPOINT HERE

次に、デバッガーを見てみましょう。

zoomRect を印刷:

(lldb) p zoomRect
(MKMapRect) $1 = {
  (MKMapPoint) origin = {
    (double) x = 4.2997e+07
    (double) y = 9.36865e+07
  }
  (MKMapSize) size = {
    (double) width = 26493.1
    (double) height = 148685
  }
}

zoomRectNorm を出力:

(lldb) p zoomRectNorm
(MKMapRect) $2 = {
  (MKMapPoint) origin = {
    (double) x = 4.29283e+07
    (double) y = 9.36379e+07
  }
  (MKMapSize) size = {
    (double) width = 163840
    (double) height = 245760
  }
}

縦横比を2:3に調整したのに、幅も高さも原点も変わらない!?

ドキュメントによると、次を返す必要があります。

マップの同じポイントを中心に配置されているが、幅と高さがマップ ビューのフレームに収まるように調整されているマップの四角形。

どうしたんだ?原点(ドキュメントに記載されているように)と幅/高さの少なくとも1つを維持することを期待していますか?

4

2 に答える 2

0

これにより、マップビューで使用した場合に得られるマップsetVisibleMapRect長方形が返されます。中心は同じである必要があります。起源はおそらくないでしょう。理由を理解するには、原点と中心の違いについて考える必要があります。もう1つ理解しておくべきことは、特定のマップrectを設定するように要求しても、mapviewは常に何が最適かについて独自のアイデアを設定するということです。何が最善かという考えは、ズームインまたはズームアウトせずにタイルを表示できるようにするものです。

于 2012-08-11T10:52:34.853 に答える
0

適合する MapRect は、タイルがネイティブ解像度で表示される領域を含むことができるズーム レベルに達するまでズームアウトします。

于 2012-08-10T16:37:09.653 に答える