即使我设置了叠加层,MKMapRectContainsRect也会返回false?

时间:2013-12-18 07:09:03

标签: ios objective-c mkmapview

我对Objective C和iOS编程有点新,我最近一直在探索MKMapView,并且我已经能够成功添加注释。

[self.mapView addAnnotations:annotations]

然而,

当我尝试添加叠加层时,我遇到了问题,

我添加了叠加层,然后我需要添加setVisibileMapRect

当我写这样的东西时 -

    [self.mapView addOverlay:MyOverlayObject]

    BOOL mapContainsOverlay = MKMapRectContainsRect(self.mapView.visibleMapRect,
                                 [MyOverlayObject boundingMapRect]);

    if (mapContainsOverlay) {
            //This is not getting executed.
      }

     NSLog(@" %hhd", mapContainsOverlay) //Prints 0

任何想法为什么mapContainsOverlay为0?

1 个答案:

答案 0 :(得分:0)

如果地图正在查看英格兰,并且叠加层位于新西兰,则self.mapView.visibleMapRect不包含[MyOverlayObject boundingMapRect],因此MKMapRectContainsRect返回false(打印为0)。我不知道你的作品是什么,但我猜测rect2不适合“完全在rect1”as per the spec内。例如法国不包含欧洲。

如果您想确保地图正在查看所需的重叠位置set the visible map rect