【问题标题】:iOS - Apple Maps MKMapKit search location not functioning properlyiOS - Apple Maps MKMapKit 搜索位置无法正常工作
【发布时间】:2017-01-23 13:48:16
【问题描述】:

Apple Maps MKMapKit 搜索位置无法正常使用 MKLocalSearch。

我必须提供位置搜索功能,用户可以在其中输入输入,应用程序会建议匹配的结果,用户可以选择其中一个以将其显示在地图视图上,并从从所选结果条目中获取的位置获取地址详细信息.

目前 MKLocalSearch 请求结果有时会提供错误代码 “loadingThrottled”,尽管我们正在取消先前的请求并输入新的搜索字符。

另外 MKLocalSearch 只提供 10 个搜索字符串的结果。

有什么方法可以改进此位置搜索功能并以更好的方式提供自动填充功能?

根据苹果文档:

每个应用或开发者 ID 没有请求限制,因此编写良好且运行正常的应用应该不会遇到任何问题。但是,在创建大量请求的编写不佳的应用程序中可能会发生限制。 https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/EnablingSearch/EnablingSearch.html

【问题讨论】:

    标签: ios location mapkit mklocalsearch mklocalsearchrequest


    【解决方案1】:

    您应该使用 MKLocalSearchCompleter 来检索自动完成建议。与 MKLocalSearch 相比,它提供了最相关的结果。

    MKLocalSearchCompleter 对象采用部分搜索字符串并生成潜在完成列表。您使用搜索完成对象来检索您自己的基于地图的搜索控件的自动完成建议。

    优势:

    • 提供与 MKLocalSearch 相比最相关的结果。
    • 位置过滤器(MKSearchCompletionFilterType)可用。
    • 出现“loadingThrottled”错误的机会更少。
    • 大约提供最多 15 个结果。(根据我目前的经验。)

    限制:

    • MKLocalSearchComplete 不提供位置作为响应,仅提供位置名称和地址。 (如果您想要位置,则必须创建 MKLocalSearch 对象并获得更多位置详细信息。)

    当用户键入文本时,您将当前文本字符串输入搜索完成对象,该对象提供匹配位置或兴趣点的可能字符串完成。然后,您使用完整的搜索完成对象来创建 MKLocalSearch 对象并检索有关地理位置的更详细信息。

    参考:Apple API Reference: MKLocalSearchCompleter

    【讨论】:

      猜你喜欢
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 2021-11-10
      • 2017-01-28
      • 2013-12-23
      • 2015-07-27
      • 2014-07-17
      相关资源
      最近更新 更多