iPhone dev — отображение двух мест на карте

Теперь у меня есть координаты двух мест, скажем, locationA с широтой 40 и долготой -80, locationB с широтой 30 и долготой -70,

Я хочу создать mapView, чтобы я мог видеть оба местоположения с соответствующим расстоянием просмотра.

Я получил новую координату, найдя среднюю точку (в этом примере {35, -75}), но вопрос в том,

Как я могу получить подходящее расстояние просмотра? В частности, как я могу вычислить CLLocationDistance (если я использую MKCoordinateRegionMakeWithDistance) или MKCoordinateSpan (если я использую MKCoordinateSpanMake).

Заранее спасибо.


person Brian    schedule 06.05.2010    source источник


Ответы (1)


Вот что я понял:

CLLocation *pointALocation = [[CLLocation alloc] initWithLatitude:middlePoint.latitude longitude:middlePoint.longitude];
CLLocation *pointBLocation = [[CLLocation alloc] initWithLatitude:pointB.latitude longitude:pointB.longitude];
CLLocationDistance d = [pointALocation distanceFromLocation:pointBLocation];
MKCoordinateRegion r = MKCoordinateRegionMakeWithDistance(middlePoint, 2*d, 2*d);
[mapView setRegion:r animated:YES];

CLLocationDistance d содержит расстояние (в метрах) между центром и второй точкой, которую вы хотите увидеть. Затем вы используете среднюю точку и два расстояния в метрах, чтобы настроить область, которую вы хотите видеть на экране. Используя 2*d, я уверен, что на экране будет достаточно места для отображения второй точки.

Надеюсь, поможет.

-- Анк

person Andres Kievsky    schedule 04.11.2010
comment
Все это время, не зная о функциях набора карт, я чувствовал себя глупо. Это просто показывает, что даже спустя почти три года ответ может быть актуальным. Спасибо! - person Moebius; 15.09.2013