gpt4 book ai didi

ios6visibleMapRect不正确

转载 作者:行者123 更新时间:2023-11-29 04:19:49 24 4
gpt4 key购买 nike

我有一个应用程序,在启动时以特定位置为中心。

//Calculate and set new center point
CLLocationCoordinate2D zoomLocation = CLLocationCoordinate2DMake(<some lat>,<some long>);

MKCoordinateSpan span;
span.latitudeDelta = 0.08;
span.longitudeDelta = 0.08;

//MKCoordinateRegion region = MKCoordinateRegionMake(zoomLocation, span);
MKCoordinateRegion region = [mapView regionThatFits:MKCoordinateRegionMake(zoomLocation, span)];

[mapView setRegion:region animated:YES];
[self refreshMap];

对refreshMap的调用尝试计算 map 的边界框,以便我可以在数据库中查询相应的信息。

//Calculate map's bounding box
MKMapRect mapRect = [mapView visibleMapRect];

MKMapPoint cornerPointNE = MKMapPointMake(MKMapRectGetMaxX(mapRect), mapRect.origin.y);
CLLocationCoordinate2D upperLeft = MKCoordinateForMapPoint(cornerPointNE);

MKMapPoint cornerPointSW = MKMapPointMake(mapRect.origin.x, MKMapRectGetMaxY(mapRect));
CLLocationCoordinate2D lowerRight = MKCoordinateForMapPoint(cornerPointSW);

if( fabs(upperLeft.longitude) > 80.00 || fabs(lowerRight.longitude) > 80.0) {
return;
}

我看到的问题是,在 iOS 6 中,在应用程序启动时未正确计算 lowerRight 坐标,并且 map 数据不会刷新,因为 lowerRight.longitude > 80.0。左上角计算正确。

应用程序加载完成后,如果我平移 map ,即使是最轻微的边界框计算也是正确的。

此代码在 iOS 5 中运行良好。

除了mapView:regionDidChangeAnimated之外,还有我可以使用的回调吗? freshMap 的其余部分相当密集,我不想影响平移性能。

TIA

更新

我似乎找到了解决办法。而不是这样做

[mapView setRegion:region animated:YES];

我将"is"更改为“否”

[mapView setRegion:region animated:NO];

现在,下角可以在应用程序启动时正确计算。

最佳答案

您是否使用 MKMapRectOffset 或 Inset 稍微移动可见矩形。

而且我一直在重新阅读你的问题,我可能是错的;但是,我认为东北角是右上角,西南角是左下角。而您可能想要西北角和东南角。

我无法在 map 套件引用中确认mapRect的原点位于左上角。

关于ios6visibleMapRect不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109430/

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