Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы CoreLocation ссылка класса CLGeocoder

Опции
Развертывание Target:

На этой странице
Язык:

CLGeocoder

Наследование


Соответствует


Оператор импорта


Swift

import CoreLocation

Objective C

@import CoreLocation;

Доступность


Доступный в iOS 5.0 и позже.

CLGeocoder класс предоставляет услуги для преобразования между координатой (указанный как широта и долготой) и удобное для пользователя представление той координаты. Удобное для пользователя представление координаты обычно состоит из улицы, города, состояния и информации о стране, соответствующей данному расположению, но это может также содержать важный момент интереса, ориентиров или другой информации об идентификации. Объект geocoder является однократным объектом, работающим с основанной на сети службой для поиска placemark информации для ее указанного координатного значения.

Для использования объекта geocoder создайте его и вызовите одного из его форварда - или геокодирующие реверс методы для начала запроса. Геокодирующие реверс запросы берут широту, и долгота оценивают и находят читаемый пользователем адрес. Геокодирующие форварда запросы берут читаемый пользователем адрес и находят соответствующую широту и значение долготы. Геокодирующие форварда запросы могут также возвратить дополнительную информацию об указанном расположении, таком как интересное место или создающий в том расположении. Для обоих типов запроса результаты возвращаются с помощью a CLPlacemark объект. Если предоставленная информация привела к многократным возможным расположениям, в случае геокодирующих форварда запросов могут быть возвращены многократные объекты placemark.

Принять умные решения относительно того, какие типы информации возвратиться, geocoder сервер использует всю информацию, предоставленную ему при обработке запроса. Например, если пользователь перемещается быстро вдоль магистрали, она могла бы возвратить имя полной области, а не имя небольшого парка, через который проходит пользователь.

Приложения должны ощущать то, как они используют геокодирование. Геокодирующие запросы ограничиваются уровнем для каждого приложения, так подача со слишком многими запросами за короткий период времени может заставить некоторые запросы перестать работать. (Когда максимальный уровень превышен, geocoder возвращает ошибочный объект со значением kCLErrorNetwork к связанному обработчику завершения.) Вот некоторые эмпирические правила для использования этого класса эффективно:

  • Отправьте самое большее один запрос геокодирования на любое пользовательское действие.

  • Если пользователь выполняет многократные действия, включающие геокодирование того же расположения, снова использующие результаты начального запроса геокодирования вместо стартовых отдельных запросов на каждое действие.

  • Когда Вы хотите обновить текущее расположение пользователя автоматически (такой как тогда, когда пользователь перемещается), выпустите новые запросы геокодирования только, когда пользователь переместил значительное расстояние и после того, как разумное количество времени передало. Например, в типичной ситуации, Вы не должны отправлять больше чем один запрос геокодирования в минуту.

  • Не запускайте запрос геокодирования в то время, когда пользователь не будет сразу видеть результаты. Например, не запускайте запрос, если Ваше приложение неактивно или в фоновом режиме.

Компьютер или устройство должны иметь доступ к сети для объекта geocoder возвратить подробную placemark информацию. Несмотря на то, что, geocoder хранит достаточно информации локально для создания отчетов о локализованном названии страны и коде страны ISO для многих расположений. Если информация о стране не доступна для определенного расположения, geocoder может все еще сообщить об ошибке Вашему блоку завершения.

Можно использовать объекты geocoder или в сочетании с, или независимый от, классы платформы Набора Карты.

  • Подает геокодирующий реверс запрос для указанного расположения.

    Объявление

    Swift

    func reverseGeocodeLocation(_ location: CLLocation!, completionHandler completionHandler: CLGeocodeCompletionHandler!)

    Objective C

    - (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler

    Параметры

    location

    Объект расположения, содержащий координатные данные для поиска.

    completionHandler

    Блочный объект, содержащий код для выполнения в конце запроса. Этот код вызывают, успешен ли запрос или неуспешен.

    Обсуждение

    Этот метод представляет указанные данные расположения серверу геокодирования асинхронно и возвратам. Ваш блок обработчика завершения будет выполняться на основном потоке. После подачи геокодирующей реверс заявки не пытайтесь инициировать другой реверс - или геокодирующий форварда запрос.

    Геокодирующие запросы ограничиваются уровнем для каждого приложения, так подача со слишком многими запросами за короткий период времени может заставить некоторые запросы перестать работать. Когда максимальный уровень превышен, geocoder передает ошибочный объект со значением kCLErrorNetwork к Вашему обработчику завершения.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 5.0 и позже.

  • Подает геокодирующий форварда запрос с помощью указанного словаря адреса.

    Объявление

    Swift

    func geocodeAddressDictionary(_ addressDictionary: [NSObject : AnyObject]!, completionHandler completionHandler: CLGeocodeCompletionHandler!)

    Objective C

    - (void)geocodeAddressDictionary:(NSDictionary *)addressDictionary completionHandler:(CLGeocodeCompletionHandler)completionHandler

    Параметры

    addressDictionary

    Словарь Адресной книги, содержащий информацию об адресе для поиска.

    completionHandler

    Блочный объект, содержащий код для выполнения в конце запроса. Этот код вызывают, успешен ли запрос или неуспешен.

    Обсуждение

    Этот метод представляет указанные данные расположения серверу геокодирования асинхронно и возвратам. Ваш блок обработчика завершения будет выполняться на основном потоке. После подачи геокодирующей форварда заявки не пытайтесь инициировать другого форварда - или геокодирующий реверс запрос.

    Геокодирующие запросы ограничиваются уровнем для каждого приложения, так подача со слишком многими запросами за короткий период времени может заставить некоторые запросы перестать работать. Когда максимальный уровень превышен, geocoder передает ошибочный объект со значением kCLErrorNetwork к Вашему обработчику завершения.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 5.0 и позже.

  • Подает геокодирующий форварда запрос с помощью указанной строки.

    Объявление

    Swift

    func geocodeAddressString(_ addressString: String!, completionHandler completionHandler: CLGeocodeCompletionHandler!)

    Objective C

    - (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler

    Параметры

    addressString

    Строка, описывающая расположение, Вы хотите искать. Например, Вы могли указать строку “1 Бесконечный цикл, Купертино, Калифорния” для определения местоположения штаб-квартиры Apple.

    completionHandler

    Блочный объект, содержащий код для выполнения в конце запроса. Этот код вызывают, успешен ли запрос или неуспешен.

    Обсуждение

    Этот метод представляет указанные данные расположения серверу геокодирования асинхронно и возвратам. Ваш блок обработчика завершения будет выполняться на основном потоке. После подачи геокодирующей форварда заявки не пытайтесь инициировать другого форварда - или геокодирующий реверс запрос.

    Геокодирующие запросы ограничиваются уровнем для каждого приложения, так подача со слишком многими запросами за короткий период времени может заставить некоторые запросы перестать работать. Когда максимальный уровень превышен, geocoder передает ошибочный объект со значением kCLErrorNetwork к Вашему обработчику завершения.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 5.0 и позже.

  • Подает геокодирующий форварда запрос с помощью указанной строки и информации об области.

    Объявление

    Swift

    func geocodeAddressString(_ addressString: String!, inRegion region: CLRegion!, completionHandler completionHandler: CLGeocodeCompletionHandler!)

    Objective C

    - (void)geocodeAddressString:(NSString *)addressString inRegion:(CLRegion *)region completionHandler:(CLGeocodeCompletionHandler)completionHandler

    Параметры

    addressString

    Строка, описывающая расположение, Вы хотите искать. Например, Вы могли указать строку “1 Бесконечный цикл, Купертино, Калифорния” для определения местоположения штаб-квартиры Apple.

    region

    Географическая область для использования в качестве подсказки при поиске указанного адреса. Указание области позволяет Вам приоритезировать возвращенный набор результатов к расположениям, которые являются близко к некоторому определенному географическому району, который обычно является текущим расположением пользователя. Если nil и приложению открывают доступ для служб определения местоположения, набор результатов приоритезирован на основе приблизительного расположения пользователя. Вызов этого метода не инициировал запрос авторизации служб определения местоположения.

    completionHandler

    Блочный объект, содержащий код для выполнения в конце запроса. Этот код вызывают, успешен ли запрос или неуспешен.

    Обсуждение

    Этот метод представляет указанные данные расположения серверу геокодирования асинхронно и возвратам. Ваш блок обработчика завершения будет выполняться на основном потоке. После подачи геокодирующей форварда заявки не пытайтесь инициировать другого форварда - или геокодирующий реверс запрос.

    Геокодирующие запросы ограничиваются уровнем для каждого приложения, так подача со слишком многими запросами за короткий период времени может заставить некоторые запросы перестать работать. Когда максимальный уровень превышен, geocoder передает ошибочный объект со значением kCLErrorNetwork к Вашему обработчику завершения.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 5.0 и позже.

  • Отменяет запрос геокодирования ожидания.

    Объявление

    Swift

    func cancelGeocode()

    Objective C

    - (void)cancelGeocode

    Обсуждение

    Можно использовать этот метод, чтобы отменить незаконченный запрос и высвободить ресурсы, связанные с тем запросом. Отмена незаконченного запроса заставляет блок обработчика завершения быть вызванным.

    Если запрос не находится на рассмотрении, потому что он уже возвратился или еще не начался, этот метод ничего не делает.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 5.0 и позже.

  • geocoding Свойство

    Булево значение, указывающее, является ли получатель посреди геокодирования его значения. (только для чтения)

    Объявление

    Swift

    var geocoding: Bool { get }

    Objective C

    @property(nonatomic, readonly, getter=isGeocoding) BOOL geocoding

    Обсуждение

    Это свойство содержит значение YEStrue если процесс является продолжающимся или NOfalse если процесс сделан или еще не инициировался.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 5.0 и позже.

Типы данных

  • Блок, который вызовут, когда запрос геокодирования завершен.

    Объявление

    Swift

    typealias CLGeocodeCompletionHandler = ([AnyObject]!, NSError!) -> Void

    Objective C

    typedef void (^CLGeocodeCompletionHandler)(NSArray *placemark, NSError *error);

    Обсуждение

    После завершения запроса геокодирования блок этой формы вызывают, чтобы дать Вам шанс обработать результаты. Параметры этого блока следующие:

    placemark

    Содержит массив CLPlacemark объекты. Для большинства запросов геокодирования этот массив должен содержать только одну запись. Однако геокодирующие форварда запросы могут возвратить многократные объекты placemark в ситуациях, где указанный адрес не мог быть разрешен к единственному расположению.

    Если запрос был отменен или была ошибка в получении placemark информации, этот параметр nil.

    error

    Содержит указатель на ошибочный объект (если таковые имеются) указание, почему не были возвращены placemark данные. Для списка возможных кодов ошибки посмотрите Базовую Ссылку Констант Расположения.

    Оператор импорта

    Objective C

    @import CoreLocation;

    Swift

    import CoreLocation

    Доступность

    Доступный в iOS 5.0 и позже.