iPhone dev - показывает два местоположения на карте - PullRequest
2 голосов
/ 06 мая 2010

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

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

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

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

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

1 Ответ

11 голосов
/ 04 ноября 2010

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

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, я убедился, что на экране будет достаточно места для отображения второй точки.

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

- ank

...