2017-02-03 9 views
1

私が構築しているアプリケーションでは、ユーザーがワインの地理的な起源を指定できるようにしたいと考えています、地域(例えば、ボルドー)、小地域(例えば、パラック))。MapKit希望するタイプの検索結果を定義します(国、都市、地域など)

私はすべての国を自分で追加する必要はなく、データベースに入ってくるすべての情報が有効であることを確認したいと思います。

  1. ユーザーは新しいワインと種類
  2. 結果リンゴのマップデータベースで、アプリの検索を入力しますが、それは
  3. から来ている国の名前を追加します。次のようにそのため、私はそれを行うことを決めましたこの検索からの検索は提案として表示され、ユーザーが提案をタップすると、アプリケーションはすべての関連情報を含むCountryオブジェクトを作成します。このようなオブジェクトが存在する場合にのみ、ワインのバンは保存されます

これはうまくいきます.1つのことを除いて、アップルマップはレストラン、ショップなどのようなものをどこからでも返します。

私の質問:私は何を探しているのですか?私は検索している地域のみを指定できますが、私の場合は無関係です。私はリンゴマップに、国、地域、都市などを探すように指示したいと思っています。これは方法で可能ですか?私はこのためにGoogleを使い果たして、これまでのところ見つけられませんでした。

答えて

2

私はMapKitで働いているし、彼らは私が見つけた最善の解決策があるタイプとして使用すると、ユーザーエントリのオートコンプリートの支援を行うことができると信じていないGoogle Place API autocomplete

のiOS今、よくフォーマットさを送信するときに地理座標を受け取る提供住所を入力するか、座標のペアを送信するときに住所を受け取ることができます。または、ロケーション名または座標の関心ポイント。

1

iOS 9.3のMapKitに追加されたクラスは、自動完成に役立つMKLocalSearchCompleterと呼ばれました。 'MKSearchCompletionFilterType'を使用して返されるものをフィルタリングできますが、それは最も広範ではなく、状況に完全には役立たないかもしれません。それは結果として都市や国を返すが、私がそれを使ったときにもビジネスを返す。

可能なオプションの1つは、返された結果を再度アプリ側でフィルタリングし、数値文字を含むすべての結果を除外することです。アランの答えに加えて

func setupCompleter() { 
    self.searchCompleter = MKLocalSearchCompleter() 
    self.searchCompleter?.delegate = self 
    self.searchCompleter?.filterType = .locationsOnly 
    self.searchCompleter?.queryFragment = "Bordeaux" 
} 

func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { 
    print("Results \(completer.results)") 

    // Do additional filtering on results here 
} 
1

、私はあなたがMkLocalSearchCompletionオブジェクトのサブタイトルプロパティでフィルタならば、あなたはビジネスのエントリを削除できることを発見しました。

関連する問題