4

私が構築しているアプリでは、ユーザーがワインの地理的原産地 (国 (フランスなど)、地域 (ボルドーなど)、小地域 (パラックなど)) を指定できる機能を実装したいと考えています。

利用可能なすべての国を自分で追加する必要がなく、データベースに入力されるすべての情報が有効であることを確認したいと考えています。したがって、次のようにすることにしました。

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

これは問題なく動作しますが、1 つだけ例外があります。Apple マップは、レストラン、ショップなど、どこからでも何でも返します。

私の質問:探しているものを指定するにはどうすればよいですか? 検索している地域のみを指定できますが、これは私の場合は関係ありません。Apple マップに、国、地域、都市などのみを検索するように指示できるようにしたいと考えています。これはある意味で可能ですか?私はこれについてグーグルを使い果たしましたが、これまでのところ方法が見つかりませんでした。

4

5 に答える 5

2

オートコンプリートを支援するMKLocalSearchCompleterと呼ばれる iOS 9.3 の MapKit に追加されたクラスがありました。'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
}
于 2017-03-29T21:13:40.817 に答える