ios - MapKit 定义所需的搜索结果类型(国家、城市、地区等)

标签 ios maps mapkit mklocalsearch mklocalsearchrequest

对于我正在构建的应用,我想实现一项功能,允许用户指定 Wine 的地理来源(国家(例如法国)、区域(例如波尔多)、次区域(例如保乐克))。

我想确保不必自己添加所有可用的国家/地区,并且进入数据库的所有信息都是有效的。因此,我决定按如下方式进行:

  1. 用户添加了一种新酒并输入了它来自的国家/地区的名称
  2. 打字时,应用会在苹果 map 数据库中搜索
  3. 此搜索的结果显示为建议,当用户点按建议时,应用会创建一个包含所有相关信息的 Country 对象。只有当存在这样的对象时,酒车才会被保存

这工作正常,除了一件事:苹果 map 从任何地方返回任何东西,比如餐馆、商店等等。

我的问题:如何指定我要查找的内容?我只能指定我正在搜索的区域,这与我的情况无关。我希望能够告诉苹果 map 只查找国家、地区、城市等。这在某种程度上可能吗?我为此用尽了谷歌,但到目前为止还没有找到办法。

最佳答案

与@Trevor 所说的相反,如果您只想要城市和城镇,我发现拒绝标题或副标题有数字的结果会产生很好的结果。

Swift 4.1代码:

// Store this as a property if you're searching a lot.
let digitsCharacterSet = NSCharacterSet.decimalDigits

let filteredResults = completer.results.filter { result in    
    if result.title.rangeOfCharacter(from: digitsCharacterSet) != nil {
        return false
    }

    if result.subtitle.rangeOfCharacter(from: digitsCharacterSet) != nil {
        return false
    }

    return true
}

或更简洁:

let filteredResults = completer.results.filter({ $0.title.rangeOfCharacter(from: digitsCharacterSet) == nil && $0.subtitle.rangeOfCharacter(from: digitsCharacterSet) == nil })

关于ios - MapKit 定义所需的搜索结果类型(国家、城市、地区等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42028453/

相关文章:

ios - TableView Controller 的按钮并执行过滤功能

ios - 如何在 swift 文件中获取类的引用并在另一个 swift 文件中对其进行编码? - Xcode/Swift

ios - Swift:如何确定何时发送电子邮件以更新 TableView ?

r - R中具有 map 和图层的ggplot2 stat_density2d的透明度和Alpha级别

r - 如何使用数据科学工具箱对简单地址进行地理编码

ios - 从文档目录 Objective c 发送带有 pdf 附件的电子邮件

ios - 使用 Google Maps API for IOS 的区域边界坐标

ios - 如何在屏幕中央的 Google map 上查看驾驶员当前位置(驾驶时)?

ios - 使用 swift 和 market 查找附近的酒吧

objective-c - 使用 CLLocation 对象作为字典中的键