Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере выполняется масштабирование и прокрутка карты до указанной области слоя карты, а также определяются старые и изменившиеся координаты левого верхнего угла карты и коэффициент масштабирования.
Для выполнения примера необходимо взамен содержимого метода mapChart:touchDownInShape: класса ViewController (см. раздел «Создание карты с временной шкалой») разместить следующий код:
// Получаем видимую область карты CGRect visibleRect = [mapChart visibleRect]; NSLog(@"Старые координаты верхнего левого угла видимой области: (%f, %f)", visibleRect.origin.x, visibleRect.origin.y); /* Изменяем масштаб и выполняем прокрутку для отображения указанной области слоя карты */ [mapChart zoomToShape: shape]; // Отображаем подсказку для области слоя карты [m_view showPopupInShape: shape]; // Получаем видимую область карты visibleRect = [mapChart visibleRect]; NSLog(@"Новые координаты верхнего левого угла видимой области: (%f, %f)", visibleRect.origin.x, visibleRect.origin.y); NSLog(@"Коэффициент масштабирования: %f", [mapChart zoom]);
Затем вручную нажмём на область слоя карты с идентификатором «RU». В результате этого будет изменён масштаб и выполнена прокрутка к данной области, а также для нее будет отображена всплывающая подсказка:

В консоли среды разработки будут выведены старые и новые координаты верхнего левого угла видимой области, а также коэффициент масштабирования:
Старые координаты верхнего левого угла видимой области: (0.000000, -241.210678)
Новые координаты верхнего левого угла видимой области: (506.336517, -88.003075)
Коэффициент масштабирования: 0.784064
Аналогичный результат (за исключением вывода информации в консоль среды разработки) получим, если выполним следующий код:
// Получаем координаты и размеры области слоя карты CGRect shapeRect = [shape bounds]; /* Изменяем масштаб и выполняем прокрутку для отображения указанной области слоя карты без воспроизведения анимации */ [mapChart zoomToRect:shapeRect]; // Перерисовываем область слоя карты [mapChart invalidateRect:shapeRect]; // Отображаем подсказку для области слоя карты [mapChart showPopupInShape:shape];
То же самое, но с воспроизведением анимации масштабирования и прокрутки карты, получим, выполнив следующий сценарий:
// Получаем координаты и размеры области слоя карты CGRect shapeRect = [shape bounds]; /* Изменяем масштаб и выполняем прокрутку для отображения указанной области слоя карты с воспроизведением анимации */ [mapChart zoomToRect:shapeRect animated:YES]; // Перерисовываем область слоя карты [mapChart invalidateRect:shapeRect]; // Отображаем подсказку для области слоя карты [mapChart showPopupInShape:shape];
См. также: