• CLGeocoder
 

CLGeocoder класс

CLGeocoder

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

Чтобы использовать объект геокодера, создайте его и вызовите один из его методов прямого или обратного геокодирования, чтобы начать запрос. Запросы обратного геокодирования - принимают значение широты и долготы и находят удобочитаемый адрес. Запрос прямого - геокодирования бурут удобочитаемый адрес и находят соответствующие значения широты и долготы. Запрос прямого - геокодирования могут также возвращать дополнительную информацию об указанном месте, например, об точке интереса или здания в этом месте. Для обоих типов запросов, результаты возвращаются с помощью объекта CLPlacemark. В случае запросов прямого геокодирования, может быть возвращено несколько объектов Placemark, если предоставленная информация дала несколько возможных мест.

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

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

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

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

Вы можете использовать объекты геокодер либо в сочетании с или независимо от, классов Map Kit.

- reverseGeocodeLocation:completionHandler:
- geocodeAddressDictionary:completionHandler:
- geocodeAddressString:completionHandler:
- geocodeAddressString:inRegion:completionHandler:
- cancelGeocode
geocoding
CLGeocodeCompletionHandler

 

- reverseGeocodeLocation:completionHandler:

Представляет запрос обратного геокодирования для указанного местоположения.

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

Аргументы:

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

Рассмотрение:

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

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

Доступно:

iOS 5.0 и выше

- geocodeAddressDictionary:completionHandler:

Представляет запрос прямого - геокодирования, используя указанный адресный словарь.

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

Аргументы:

addressDictionaryСловарь адресной книги, содержащий информацию об рассматриваемом адресе.
completionHandlerБлоковый объект, содержащий код, выполняемый по окончанию запроса. Этот код выполняется и при удачном и при неудачном результате запроса.

Рассмотрение:

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

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

Доступно:

iOS 5.0 и выше

- geocodeAddressString:completionHandler:

Представляет запрос прямого - геокодирования, используя заданную строку.

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

Аргументы:

addressStringСтрока, описывающая местоположение. Например, вы можете задать строку: "1 Infinite Loop, Cupertino, CA".
completionHandlerБлоковый объект, содержащий код, выполняемый по окончанию запроса. Этот код выполняется и при удачном и при неудачном результате запроса.

Рассмотрение:

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

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

Доступно:

iOS 5.0 и выше

- geocodeAddressString:inRegion:completionHandler:

Представляет запрос прямого - геокодирования, используя заданную строку и регион.

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

Аргументы:

addressStringСтрока, описывающая местоположение. Например, вы можете задать строку: "1 Infinite Loop, Cupertino, CA".
regionГеографический регион, используемый для подсказки к заданному адресу. Задание региона позволяет расставить приоритеты в возвращенном наборе результатов. Если nil и приложению разрешены службы определения местоположения, результат отсортирован на основе местоположения пользователя. Вызов этого метода не вызывает запрос авторизации на разрешение определения местоположения.
completionHandlerБлоковый объект, содержащий код, выполняемый по окончанию запроса. Этот код выполняется и при удачном и при неудачном результате запроса.

Рассмотрение:

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

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

Доступно:

iOS 5.0 и выше

- cancelGeocode

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

- (void)cancelGeocode

Рассмотрение:

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

Доступно:

iOS 5.0 и выше

geocoding

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

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

Рассмотрение:

Это значение содержит YES если процесс запущен или NO если процесс выполнился или пока не инициирован.

Доступно:

iOS 5.0 и выше

CLGeocodeCompletionHandler

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

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

Рассмотрение:

После завершения запроса геокодирования, блок этой формы призван дать вам возможность обрабатывать результаты. Параметры этого блока следующие:
placemarkСодержит массив CLPlacemark. Если запрос был отменен или завершен с ошибкой, этот параметр содержит nil.
errorСодержит указатель на объект с ошибкой.

Доступно:

iOS 5.0 и выше
 
 
homeЗаметили ошибкукарта сайта 
   Made on a Mac