2017-01-23 7 views
0

Apple地図MKMapKit検索場所がMKLocalSearchを使用して正しく機能していません。iOS - Apple Maps 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