MKMapItem
MKMapItem
класс инкапсулирует информацию об отдельном моменте на карте. Эта информация включает расположение карты и любые другие данные, которые могли бы быть релевантными, такими как имя бизнеса в том расположении. Приложения используют этот класс для совместного использования связанных с картой данных с приложением Карт.
Вы используете этот класс одним из двух способов. Если Ваше приложение в состоянии вывести на экран направления точка-точка, приложение Карт может отправить запрос направлений к Вашему приложению в ответ на запрос пользователем для использования приложения для маршрутизации. В том экземпляре запрос направлений содержит элементы карты с запуском и конечными точками для использования при создании направлений. Другой способ использовать элементы карты состоит в том, чтобы создать их в Вашем приложении и затем попросить, чтобы приложение Карт вывело на экран их. Например, если Ваше приложение позволяет пользователю искать локальные компании или интересные места, можно создать элементы карты для каждого расположения и попросить, чтобы Карты вывели на экран контакты в соответствующих расположениях.
Обычно, Вы используете этот класс для представления закрепленных расположений на карте, но можно также использовать mapItemForCurrentLocation
метод для получения элемента карты, представляющего текущее расположение пользователя. По причинам конфиденциальности, и потому что расположение пользователя может измениться, элемент карты, возвращенный тем методом, не содержит координатных данных. При необходимости в фактическом расположении пользователя необходимо использовать Базовую платформу Расположения для получения его.
Специальные замечания использования
Чтобы определить, доступен ли класс во время выполнения в данном выпуске iOS, Вы обычно проверяете, является ли тот класс nil
. К сожалению, этот тест не чисто точен для MKMapItem. Несмотря на то, что этот класс был общедоступен начиная с iOS 6.0, это было в разработке до этого. Несмотря на то, что класс существует в более ранних выпусках, Вы не должны пытаться использовать его в тех выпусках.
Для определения во время выполнения, можно ли использовать элементы карты в приложении протестируйте ли класс и openMapsWithItems:launchOptions:
метод класса существует. Тот метод не был добавлен к классу до iOS 6.0. Код мог бы быть похожим на следующее:
Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {
// Use class
}
Оператор импорта
Swift
import MapKit
Objective C
@import MapKit;
Доступность
Доступный в OS X v10.9 и позже.
-
Создает и возвращает одноэлементный объект элемента карты представление текущего расположения устройства.
Объявление
Swift
class func mapItemForCurrentLocation() -> MKMapItem!
Objective C
+ (MKMapItem *)mapItemForCurrentLocation
Возвращаемое значение
MKMapItem
объект, представляющий текущее расположение.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Инициализирует и возвращает объект элемента карты использование указанного объекта placemark.
Объявление
Swift
init!(placemark
placemark
: MKPlacemark!)Objective C
- (instancetype)initWithPlacemark:(MKPlacemark *)
placemark
Параметры
placemark
Соответствие объекта placemark желаемому расположению карты. Этот параметр не должен быть
nil
.Возвращаемое значение
Инициализированный объект элемента карты.
Обсуждение
Используйте этот метод для создания элемента карты для существующего placemark. Не используйте его для создания элемента карты, представляющего текущее расположение пользователя. Чтобы сделать это, используйте
mapItemForCurrentLocation
метод вместо этого.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Объект placemark, содержащий информацию о расположении.
Объявление
Swift
var placemark: MKPlacemark! { get }
Objective C
@property(nonatomic, readonly) MKPlacemark *placemark
Обсуждение
Если Вы создали элемент карты с помощью
mapItemForCurrentLocation
метод, значение этого свойстваnil
иisCurrentLocation
свойство установлено вYES
true
.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
isCurrentLocation isCurrentLocation
СвойствоБулево значение, указывающее, представляет ли элемент карты текущее расположение пользователя.
Объявление
Swift
var isCurrentLocation: Bool { get }
Objective C
@property(nonatomic, readonly) BOOL isCurrentLocation
Обсуждение
Если значение этого свойства
YES
true
, элемент карты представляет текущее расположение пользователя. ЕслиYES
true
, значение вplacemark
свойство установлено вnil
.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Описательное имя связалось с элементом карты.
Обсуждение
Используйте это свойство для указания имени, связанного с расположением. Например, если бы существует бизнес в указанном расположении, Вы использовали бы это свойство для указания имени бизнеса.
Если этот элемент карты представляет текущее расположение пользователя, значение в свойстве установлено в локализованную версию “Текущего Расположения”.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
phoneNumber phoneNumber
СвойствоТелефонный номер связался с бизнесом в указанном расположении.
Объявление
Swift
var phoneNumber: String!
Objective C
@property(nonatomic, copy) NSString *phoneNumber
Обсуждение
Если существует соответствующий телефонный номер, связанный с расположением, таким как телефонный номер для бизнеса в расположении, используйте это свойство для указания того значения.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
URL связался с указанным расположением.
Обсуждение
Если существует соответствующий URL, связанный с расположением, таким как URL для бизнеса в расположении, используйте это свойство для указания того значения.
Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Откройте приложение Карт и выведите на экран указанные элементы карты.
Объявление
Swift
class func openMapsWithItems(_
mapItems
: [AnyObject]!, launchOptionslaunchOptions
: [NSObject : AnyObject]!) -> BoolObjective C
+ (BOOL)openMapsWithItems:(NSArray *)
mapItems
launchOptions:(NSDictionary *)launchOptions
Параметры
mapItems
Массив, содержащий один или больше
MKMapItem
объекты, представляющие элементы, Вы хотите вывести на экран на карте. Этот параметр может бытьnil
.launchOptions
Дополнительная информация, которую приложение Карт может использовать для конфигурирования дисплея карты. Например, можно использовать опции запуска указать видимую область карты и тип карты. Для списка ключей можно поместить в этот словарь, видеть
“Launch Options Dictionary Keys”
.Можно указать
nil
для этого параметра.Возвращаемое значение
YES
true
если элементы карты были успешно открыты приложением Карт, илиNO
false
если была ошибка.Обсуждение
Вы используете этот метод для передачи одного или более элементов карты приложению Карт. Например, Вы могли бы использовать этот метод, чтобы попросить, чтобы приложение Карт вывело на экран основанные на местоположении результаты поиска, сгенерированные Вашим приложением. Контакты дисплеев карт в каждом расположении Вы указываете, и использует содержание каждого объекта элемента карты вывести на экран дополнительную информацию.
Если Вы указываете
MKLaunchOptionsDirectionsModeKey
опция вlaunchOptions
словарь,mapItems
массив должен иметь не больше, чем два элемента в нем. Если массив содержит один элемент, приложение Карт генерирует направления от текущего расположения пользователя до расположения, указанного элементом карты. Если массив содержит два элемента, приложение Карт генерирует направления от расположения первого элемента к расположению второго элемента в массиве.Если Вы не включаете
MKLaunchOptionsMapCenterKey
иMKLaunchOptionsMapSpanKey
ключи в ВашемlaunchOptions
словарь, Карты создают область, охватывающую предоставленные элементы. Это использует эту область для установки видимой части карты.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Откройте приложение Карт и выведите на экран этот элемент карты.
Объявление
Swift
func openInMapsWithLaunchOptions(_
launchOptions
: [NSObject : AnyObject]!) -> BoolObjective C
- (BOOL)openInMapsWithLaunchOptions:(NSDictionary *)
launchOptions
Параметры
launchOptions
Дополнительная информация, которую приложение Карт может использовать для конфигурирования дисплея карты. Например, можно использовать опции запуска указать видимую область карты и тип карты. Для списка ключей можно поместить в этот словарь, видеть
“Launch Options Dictionary Keys”
.Этот параметр может быть
nil
.Возвращаемое значение
YES
true
если этот элемент карты был успешно открыт приложением Карт, илиNO
false
если была ошибка.Обсуждение
Вы используете этот метод для передачи текущего элемента карты приложению Карт. Если Ваш элемент карты содержит дескриптивную информацию о расположении (таком как имя или URL), отображения приложения Карт что информация в указанной координате.
Если Вы указываете
MKLaunchOptionsDirectionsModeKey
опция вlaunchOptions
словарь, приложение Карт интерпретирует это как попытку отобразиться от текущего расположения пользователя до расположения, указанного этим элементом карты.Если Вы не включаете
MKLaunchOptionsMapCenterKey
иMKLaunchOptionsMapSpanKey
ключи в ВашемlaunchOptions
словарь, Карты создают область вокруг текущего элемента. Это использует ту область для установки видимой части карты.Оператор импорта
Objective C
@import MapKit;
Swift
import MapKit
Доступность
Доступный в OS X v10.9 и позже.
-
Опции запуска указать при открытии элементов карты в приложении Карт.
Объявление
Swift
let MKLaunchOptionsDirectionsModeKey: NSString! let MKLaunchOptionsMapTypeKey: NSString! let MKLaunchOptionsMapCenterKey: NSString! let MKLaunchOptionsMapSpanKey: NSString! let MKLaunchOptionsShowsTrafficKey: NSString!
Objective C
NSString * const MKLaunchOptionsDirectionsModeKey; NSString * const MKLaunchOptionsMapTypeKey; NSString * const MKLaunchOptionsMapCenterKey; NSString * const MKLaunchOptionsMapSpanKey; NSString * const MKLaunchOptionsShowsTrafficKey;
Константы
-
MKLaunchOptionsDirectionsModeKey
MKLaunchOptionsDirectionsModeKey
Значение этого ключа
NSString
соответствие одному из значений, описанных в“Directions Mode Values”
. Вы указываете этот ключ, чтобы сказать приложению Карт обрабатывать предоставленные элементы карты, как запускаются и конечные точки для направлений маршрутизации. Если этот ключ не присутствует, контакты дисплеев Карт в указанных расположениях.Доступный в OS X v10.9 и позже.
-
MKLaunchOptionsMapTypeKey
MKLaunchOptionsMapTypeKey
Значение этого ключа
NSNumber
возразите, чье значение является целым числом, соответствующимMKMapType
значение. Это значение представляет тип карты (стандарт, спутник, гибрид) для отображения.Доступный в OS X v10.9 и позже.
-
MKLaunchOptionsMapCenterKey
MKLaunchOptionsMapCenterKey
Значение этого ключа
NSValue
объект, содержащий закодированныйCLLocationCoordinate2D
структура. Это значение представляет расположение, на котором должно центрироваться представление карты.Доступный в OS X v10.9 и позже.
-
MKLaunchOptionsMapSpanKey
MKLaunchOptionsMapSpanKey
Значение этого ключа
NSValue
объект, содержащий закодированныйMKCoordinateSpan
структура. Это значение представляет область, которую должно вывести на экран представление карты.Доступный в OS X v10.9 и позже.
-
MKLaunchOptionsShowsTrafficKey
MKLaunchOptionsShowsTrafficKey
Значение этого ключа
NSNumber
объект, содержащий булево значение. Это значение указывает, должна ли информация о трафике быть выведена на экран на карте. Если Вы не указываете этот ключ, Карты использует его текущие настройки, чтобы определить, вывести ли на экран трафик.Доступный в OS X v10.9 и позже.
Обсуждение
Вы указываете эти ключи в словаре опций запуска для
openMapsWithItems:launchOptions:
илиopenInMapsWithLaunchOptions:
метод. -
-
Строки, представляющие возможные значения
MKLaunchOptionsDirectionsModeKey
ключ.Объявление
Swift
let MKLaunchOptionsDirectionsModeDriving: NSString! let MKLaunchOptionsDirectionsModeWalking: NSString!
Objective C
NSString * const MKLaunchOptionsDirectionsModeDriving; NSString * const MKLaunchOptionsDirectionsModeWalking;
Константы
-
MKLaunchOptionsDirectionsModeDriving
MKLaunchOptionsDirectionsModeDriving
Говорит приложению Карт отображать направления движения между запуском и конечными точками.
Доступный в OS X v10.9 и позже.
-
MKLaunchOptionsDirectionsModeWalking
MKLaunchOptionsDirectionsModeWalking
Говорит приложению Карт отображать направления обхода между запуском и конечными точками.
Доступный в OS X v10.9 и позже.
-