地图视图的visibleMapRect 属性是MKMapRect。
MKMapRect 使用MKMapPoint 单位定义一个矩形。
地图的MKMapPoint 网格系统是一组固定的点,几乎覆盖了整个世界。
原点位于左上角,大约对应于 85° N,180° W 的真实坐标。
x 轴从 0(最左/最西)开始,向右/向东正向增加到某个非常大的数字。
y 轴从 0(顶部/最北端)开始,向底部/南端正向增加到某个非常大的数字。
visibleMapRect 表示地图当前显示的是整个世界MKMapRect 的部分。
所以visibleMapRect 的起源只是整个世界的MKMapRect 中的MKMapPoint,目前显示在地图视图的左上角。
假设您正在查看整个世界。
visibleMapRect.origin 可能是 x=0, y=0。
当您放大时,正在查看的新左上角点位于前一个左上角点的右侧。
当您进一步向右移动时,x 轴值会增加。
也许这张粗略的图表会有所帮助:
x-axis
0 ----------------------------- positive --->
________________________________________________
0 | |
: | |
: | +=============================+ |
y-axis : | |A | |
: | | +==========+ | |
: | | |B | | |
positive | | | | | |
: | | +==========+ | |
: | | | |
: | +=============================+ |
v | |
|________________________________________________|
- 外部矩形是整个世界的固定
MKMapRect (MKMapRectWorld)。
- 左上角“A”的第一个内部矩形是一些初始
visibleMapRect。它的“A”可能类似于 x=5000, y=2000。
- 左上角“B”的第二个内部矩形是一些放大的
visibleMapRect。它的“B”将具有更高的 x 和更高的 y。
顺便说一句,您实际上并不需要关心 特定 MKMapRect 或 MKMapPoint 值 本身。这个相关问题的答案也可能会有所帮助:Difficulties understanding MapKit Coordinate System。