gpt4 book ai didi

ios - 从坐标创建 MKMapRect 并使用 mapView.visibleMapRect

转载 作者:行者123 更新时间:2023-11-29 03:41:37 25 4
gpt4 key购买 nike

我正在尝试查看我拥有的某些范围(最大 x、最大 y、最小 x、最小 y 坐标)是否位于当前可见 map View 中。

我采用我的范围并创建一个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 不是我想象的那样(屏幕上的可视区域)吗?

最佳答案

哦!

问题是我使用了 minY 而不是 minX。

MKMapPoint upperLeft = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.maxY floatValue], [boundary.extents.**minX** floatValue]));
MKMapPoint lowerLeft = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.minY floatValue], [boundary.extents.**minX** floatValue]));
MKMapPoint upperRight = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.maxY floatValue], [boundary.extents.**maxX** floatValue]));

关于ios - 从坐标创建 MKMapRect 并使用 mapView.visibleMapRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com