MKReverseGeocoder не возвращает SubAdministrativeArea - PullRequest
2 голосов
/ 04 апреля 2011

Я использую MKReverseGeocoder в своем приложении, чтобы получить штат (AdministrativeArea) и округ (SubAdministrativeArea), в котором находится мой пользователь.

Я только что заметил, что для SubAdministrativeArea не возвращается значение (null). Государство работает правильно. Это работало правильно в прошлом, и я не уверен точно, когда это перестало работать. Такое же поведение я наблюдаю на симуляторе, 3GS и WiFi iPad 1. Я также получал сообщения об этом от пользователя, находящегося в нескольких сотнях миль (тот же штат, другой округ).

Кто-нибудь еще испытывал это? Я не нашел других подобных сообщений об ошибках.

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Я столкнулся с точно такой же проблемой и прибег к использованию атрибута метки addressDictionary, например,

[placemark.addressDictionary objectForKey@"City"]

вместо

placemark.subAdministrativeArea
0 голосов
/ 02 октября 2011

Я недавно играл с MKReverseGeocoder и нашел его несколько ненадежным.Иногда номер улицы не возвращался, а в некоторых случаях SubAdministrativeArea был нулевым.Кроме того, значение Locality (city) в некоторых случаях было нулевым.

Использование MKReverseGeocoder делает вас зависимым от источника данных, который может не соответствовать вашим ожиданиям.Например, поиграв с ним в Нью-Йорке, я заметил, что иногда Квинс возвращается в Местность (город), а Бруклин отображается как SubAdministrativeArea (округ).

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

Вы также можете попробовать использовать API геокодирования Карт Google напрямую, так как он вернет несколько результатов вместо одного.Тем не менее, это, вероятно, потребует больше работы, так как вам нужно выполнить анализ вручную.Вот пример ответа .

...