2017-01-23 4 views
0

Карты поиска Apple MKMapKit не работают должным образом с использованием MKLocalSearch.iOS - Карты поиска Apple MKMapKit не работают должным образом

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

В настоящее время результаты запроса MKLocalSearch иногда содержат код ошибки «loadingThrottled», хотя мы отменяем предыдущий запрос с введенным новым символом поиска.

Также MKLocalSearch предоставляет только 10 результатов для искомой строки.

Есть ли способ улучшить эту функцию поиска местоположения и предоставить автозаполнение лучше?

Согласно яблоневых документы:

Там нет никаких ограничений запросов на приложение или разработчиков ID, так хорошо написанные приложения, которые работают правильно не должны испытывать каких-либо проблем. Однако дросселирование может происходить в плохо написанном приложении, которое создает чрезвычайно большое количество запросов. https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/EnablingSearch/EnablingSearch.html

ответ

0

Вы должны использовать MKLocalSearchCompleter получить автозаполнения предложения. Он предоставляет наиболее релевантные результаты по сравнению с MKLocalSearch.

Объект MKLocalSearchCompleter принимает частичную строку поиска и генерирует список потенциальных пополнений. Вы используете объект-объект поиска для получения предложений автозаполнения для своих собственных элементов управления на основе карты.

Преимущество:

  • Обеспечить наиболее значимые результаты по сравнению с MKLocalSearch.
  • Доступен фильтр местоположения (MKSearchCompletionFilterType).
  • Меньше шансов получить ошибку «loadingThrottled».
  • Прибл обеспечивает максимум 15 результатов (на основе моего опыта до сих пор.)

Ограничение:.

  • MKLocalSearchComplete не предоставляет место в ответ, только дает название места & адрес. (Если вы хотите места, чем вы должны создать MKLocalSearch объект & получите больше сведений о местоположении.)

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

Ссылка:Apple API Reference: MKLocalSearchCompleter

Смежные вопросы