gpt4 book ai didi

objective-c - 如何在两个 MKCoordinateRegion 之间建立联合

转载 作者:太空狗 更新时间:2023-10-30 03:46:26 27 4
gpt4 key购买 nike

我正在尝试合并两个 MKCoordinateRegion。有人知道如何执行此操作吗?

最佳答案

有一个 MKMapRectUnion 函数接受两个 MKMapRects 所以你可以先将每个 MKCoordinateRegion 转换成一个 MKMapRect然后调用该函数(并使用 MKCoordinateRegionForMapRect 函数将结果转换回 MKCoordinateRegion)。

转换方法可能是这样的:

- (MKMapRect)mapRectForCoordinateRegion:(MKCoordinateRegion)coordinateRegion
{
CLLocationCoordinate2D topLeftCoordinate =
CLLocationCoordinate2DMake(coordinateRegion.center.latitude
+ (coordinateRegion.span.latitudeDelta/2.0),
coordinateRegion.center.longitude
- (coordinateRegion.span.longitudeDelta/2.0));

MKMapPoint topLeftMapPoint = MKMapPointForCoordinate(topLeftCoordinate);

CLLocationCoordinate2D bottomRightCoordinate =
CLLocationCoordinate2DMake(coordinateRegion.center.latitude
- (coordinateRegion.span.latitudeDelta/2.0),
coordinateRegion.center.longitude
+ (coordinateRegion.span.longitudeDelta/2.0));

MKMapPoint bottomRightMapPoint = MKMapPointForCoordinate(bottomRightCoordinate);

MKMapRect mapRect = MKMapRectMake(topLeftMapPoint.x,
topLeftMapPoint.y,
fabs(bottomRightMapPoint.x-topLeftMapPoint.x),
fabs(bottomRightMapPoint.y-topLeftMapPoint.y));

return mapRect;
}

然后,实际进行合并:

MKCoordinateRegion region1 = ...
MKCoordinateRegion region2 = ...

MKMapRect mapRect1 = [self mapRectForCoordinateRegion:region1];
MKMapRect mapRect2 = [self mapRectForCoordinateRegion:region2];

MKMapRect mapRectUnion = MKMapRectUnion(mapRect1, mapRect2);

MKCoordinateRegion regionUnion = MKCoordinateRegionForMapRect(mapRectUnion);

关于objective-c - 如何在两个 MKCoordinateRegion 之间建立联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6775718/

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