我正在尝试查看我拥有的某些范围(最大 x、最大 y、最小 x、最小 y 坐标)是否在当前可见的地图视图中。
我采取我的范围并创建一个MKMapRect
:
MKMapPoint upperLeft = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.maxY floatValue], [boundary.extents.minY floatValue]));
MKMapPoint lowerLeft = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.minY floatValue], [boundary.extents.minY floatValue]));
MKMapPoint upperRight = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.maxY floatValue], [boundary.extents.maxY floatValue]));
MKMapRect mapRect = MKMapRectMake(upperLeft.x, upperLeft.y, fabs(upperLeft.x - upperRight.x), fabs(upperLeft.y - lowerLeft.y));
现在我想检查我的“mapRect”是否在 mapView.visibleMapRect 中:
if (MKMapRectContainsRect(mapView.visibleMapRect, mapRect)) {
// do some stuff
}
mapView.visibleMapRect
但是当我知道它们应该存在的时候,我的范围永远不会被包含。
如果我用 替换mapView.visibleMapRect
,MKMapRectWorld
那么它将包含我的范围“mapRect”。
难道我做错了什么?不是mapView.visibleMapRect
我想的那样(屏幕上的可视区域)?