MKAnnotation или MKMapItem

В чем разница между MKAnnotation и MKMapItem?

Какой из них использовать, когда я хочу отобразить некоторые интересные места на своей карте?
У меня есть список объектов, которые на данный момент имеют latitude, longitude, title, description и photo, и я хочу, чтобы они были на моей карте.


person Kamil Lelonek    schedule 01.03.2014    source источник


Ответы (2)


MKAnnotation — это MARKER, предназначенный для отображения материала с использованием MKAnnotationView.

так что процедура такова:

  1. добавьте MKAnnotation, чтобы карта знала, что есть запись
  2. дождитесь вызова делегата карты viewForAnnotation
  3. настроить annotationView там, который должен быть показан

хороший учебник (IMO), который показывает это с подробным кодом, находится по адресу: http://www.codigator.com/tutorials/mapkit-tutorial-for-ios-beginners/


MKMapItem предназначен только для API openMapWithItem, который открывает внешнее приложение!


РЕДАКТИРОВАТЬ: MKMapItem имеет свойство метки, которое является MKAnnotation, поэтому, если оно не равно нулю, вы можете добавить его. (обратите внимание, что это может быть ноль)

person Daij-Djan    schedule 01.03.2014
comment
+1 вам за то, что вы так же быстры и даже более подробны, чем я. - person Michael Dautermann; 01.03.2014
comment
Важно отметить, что MKAnnotation — это протокол, а MKMapItem — это класс (который не реализует этот протокол). Таким образом, шаг 1 должен сказать: добавьте объект, который реализует протокол MKAnnotation, чтобы позволить... Представлению карты нужны объекты модели, которые реализуют этот протокол. Их представление — это отдельная вещь. - person ; 01.03.2014
comment
MKMapItem имеет метку атрибута типа MKPlacemark, которая реализует MKAnnotation, поэтому вы можете добавить ее на карту. - person echappy; 30.06.2015

MKAnnotation — это протокол, используемый для предоставления информации, связанной с аннотациями, в виде карты.

Я думаю, что вы действительно имели в виду MKAnnotationView, который используется для "визуального представления аннотаций в виде карты".

MKMapItem "инкапсулирует информацию об определенной точке на карта. Эта информация включает местоположение на карте и любые другие данные, которые могут иметь значение, например название компании в этом местоположении. Приложения используют этот класс для обмена данными, связанными с картой, с приложением "Карты".

Если вы хотите показать аннотации для определенной точки на карте, я подозреваю, что вы хотите использовать MKAnnotationView.

person Michael Dautermann    schedule 01.03.2014