gpt4 book ai didi

iphone - MKMapKit。中心图显示所有 MKAnnotation

转载 作者:行者123 更新时间:2023-12-01 17:33:56 27 4
gpt4 key购买 nike

我在 map 上有 2-10 个注释图钉。当我单击一个按钮时,我希望 map 缩小并居中,以便用户可以看到所有图钉。我怎样才能做到这一点?

提前致谢

最佳答案

假设您有一个包含所有注释的数组,您可以执行以下操作:

CLLocationCoordinate2D leftTop = CLLocationCoordinate2DMake(-90,180);
CLLocationCoordinate2D rightBottom = CLLocationCoordinate2DMake(90, -180);

for (int i=0; i < [annotations count]; i++) {
id<MKAnnotation> annotation = (id<MKAnnotation>)[annotation objectAtIndex:i];
CLLocationCoordinate2D coord = annotation.coordinate;
if (coord.latitude > leftTop.latitude) {
leftTop.latitude = coord.latitude;
}
if (coord.longitude < leftTop.longitude) {
leftTop.longitude = coord.longitude;
}
if (coord.latitude < rightBottom.latitude) {
rightBottom.latitude = coord.latitude;
}
if (coord.longitude > rightBottom.longitude) {
rightBottom.longitude = coord.longitude;
}
}

MKCoordinateSpan regSpan = MKCoordinateSpanMake(leftTop.latitude-rightBottom.latitude, rightBottom.longitude-leftTop.longitude);
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(leftTop.latitude-regSpan.latitudeDelta/2, leftTop.longitude+regSpan.longitudeDelta/2);
regSpan.latitudeDelta = MAX(regSpan.latitudeDelta, 0.01);
regSpan.longitudeDelta = MAX(regSpan.longitudeDelta, 0.01);
MKCoordinateRegion reg = MKCoordinateRegionMake(center, regSpan);
if (CLLocationCoordinate2DIsValid(center)) {
[_mapView setRegion:reg animated:YES];
}

关于iphone - MKMapKit。中心图显示所有 MKAnnotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10733496/

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