Рис. 9.3. Маркер альтернативного цвета, отображенный в картографическом виде
9.6. Отображение пользовательских маркеров в картографическом виде
Постановка задачи
Вместо стандартных маркеров, присутствующих в iOS SDK, требуется использовать на карте в таком качестве наши собственные изображения.
Решение
Загружаем произвольное изображение в экземпляр класса UIImage и присваиваем этот экземпляр свойству image экземпляра MKAnnotationView. В результате выбранное нами изображение возвращается карте в виде маркера:
В данном коде отображаем картинку под названием BluePin.png (в пакете нашего приложения) для любого маркера, который ставится на карте. Определение реализации класса MyAnnotation приводится в разделе 9.5.
Обсуждение
Объект делегата, относящийся к классу MKMapView, должен соответствовать протоколу MKMapViewDelegate и реализовывать метод mapView: viewForAnnotation:. Возвращаемое значение этого метода является экземпляром класса MKAnnotationView. Любой объект, являющийся подклассом вышеупомянутого класса, по умолчанию наследует свойство image. Если присвоить этому свойству такое значение, то мы заменим стандартное значение, предоставляемое во фреймворке Map Kit. Результат показан на рис. 9.4.
Рис. 9.4. Наше собственное изображение, показанное в картографическом виде
См. также
Раздел 9.5.
9.7. Преобразование обычных адресов в данные широты и долготы
Постановка задачи
Имеется адрес определенного места, необходимо найти его географические координаты (широту и долготу).