Масштабирование MKMapView для соответствия аннотациям? ⇐ IOS
-
Гость
Масштабирование MKMapView для соответствия аннотациям?
Я использую MKMapView и добавил на карту несколько аннотаций на территории площадью 5–10 километров. Когда я запускаю приложение, моя карта начинает уменьшаться, чтобы показать весь мир. Как лучше всего увеличить масштаб карты, чтобы метки соответствовали виду?
РЕДАКТИРОВАТЬ: Сначала я думал использовать MKCoordinateRegionMake и вычислить центр координат, longitudeDelta и latitudeDelta из моих аннотаций. Я почти уверен, что это сработает, но я просто хотел убедиться, что не упустил ничего очевидного.
Код добавлен, кстати: FGLocation — это класс, соответствующий MKAnnotation, locationFake — это NSMutableArray этих объектов. Комментарии всегда приветствуются....
- (MKCoordinateRegion)regionFromLocations { CLLocationCoordinate2D верхний = [[locationFake objectAtIndex:0] координата]; CLLocationCoordinate2D нижняя = [[locationFake objectAtIndex:0] координата]; // НАЙТИ ПРЕДЕЛЫ for(FGLocation *eachLocation в locationFake) { if([координата каждого местоположения].latitude > Upper.latitude) Upper.latitude = [координата каждого местоположения].latitude; if([координата каждого местоположения].latitude < low.latitude) low.latitude = [координата каждого местоположения].latitude; if([координата каждого местоположения].longitude > Upper.longitude) Upper.longitude = [координата каждого местоположения].longitude; if([координата каждого местоположения].longitude < low.longitude) low.longitude = [координата каждого местоположения].longitude; } // НАЙТИ РЕГИОН MKCoordinateSpan locationSpan; locationSpan.latitudeDelta = верхняя.широта - нижняя.широта; locationSpan.longitudeDelta = верхняя.долгота - нижняя.долгота; CLLocationCoordinate2D locationCenter; locationCenter.latitude = (верхняя.широта + нижняя.широта) / 2; locationCenter.longitude = (верхняя.долгота + нижняя.долгота) / 2; Регион MKCoordinateRegion = MKCoordinateRegionMake (locationCenter, locationSpan); регион возврата; }
Я использую MKMapView и добавил на карту несколько аннотаций на территории площадью 5–10 километров. Когда я запускаю приложение, моя карта начинает уменьшаться, чтобы показать весь мир. Как лучше всего увеличить масштаб карты, чтобы метки соответствовали виду?
РЕДАКТИРОВАТЬ: Сначала я думал использовать MKCoordinateRegionMake и вычислить центр координат, longitudeDelta и latitudeDelta из моих аннотаций. Я почти уверен, что это сработает, но я просто хотел убедиться, что не упустил ничего очевидного.
Код добавлен, кстати: FGLocation — это класс, соответствующий MKAnnotation, locationFake — это NSMutableArray этих объектов. Комментарии всегда приветствуются....
- (MKCoordinateRegion)regionFromLocations { CLLocationCoordinate2D верхний = [[locationFake objectAtIndex:0] координата]; CLLocationCoordinate2D нижняя = [[locationFake objectAtIndex:0] координата]; // НАЙТИ ПРЕДЕЛЫ for(FGLocation *eachLocation в locationFake) { if([координата каждого местоположения].latitude > Upper.latitude) Upper.latitude = [координата каждого местоположения].latitude; if([координата каждого местоположения].latitude < low.latitude) low.latitude = [координата каждого местоположения].latitude; if([координата каждого местоположения].longitude > Upper.longitude) Upper.longitude = [координата каждого местоположения].longitude; if([координата каждого местоположения].longitude < low.longitude) low.longitude = [координата каждого местоположения].longitude; } // НАЙТИ РЕГИОН MKCoordinateSpan locationSpan; locationSpan.latitudeDelta = верхняя.широта - нижняя.широта; locationSpan.longitudeDelta = верхняя.долгота - нижняя.долгота; CLLocationCoordinate2D locationCenter; locationCenter.latitude = (верхняя.широта + нижняя.широта) / 2; locationCenter.longitude = (верхняя.долгота + нижняя.долгота) / 2; Регион MKCoordinateRegion = MKCoordinateRegionMake (locationCenter, locationSpan); регион возврата; }
Мобильная версия