【问题标题】:Searching for addresses using MapKit on iOS在 iOS 上使用 MapKit 搜索地址
【发布时间】:2015-02-11 13:02:30
【问题描述】:

我有一个 UISearchBar,用户在其中输入字符串(例如地址),它应该建议一些地址。

假设我在 Apple 的地图应用中,输入“New Yo”,我会得到纽约市 + 一些本地搜索结果。

Apple 似乎在混合使用 MKLocalSearch 和前向地理编码。

现在如果我搜索文档,它明确指出我不能使用 CLGeoCoding 来搜索地址,但我应该使用 MKLocalSearch。

那么这里最好的方法是什么? MKLocalsearch 实际上是用于查找用户附近的地点还是我错了?

顺便说一句,我正在使用 Swift :D 谢谢

【问题讨论】:

  • 如果您尝试实现自动完成或增量搜索,MapKit 和 CoreLocation 目前不支持此功能。我发现 MKLocalSearch 即使对于它应该做的事情也非常有限且“没有生产力”。对于自动完成,Google Places Autocomplete API 非常出色,但可能需要您切换到使用 Google 地图,以遵守许可。见stackoverflow.com/questions/23505097/…

标签: ios objective-c swift mapkit uisearchbar


【解决方案1】:

如果您希望能够搜索位置,请使用 CLGeocoder。 (缺点是苹果限制了 api 调用的数量,所以当你输入“new yo...”时你可能不会得到一堆结果,但它确实可以完成这项工作)。

另一方面,MKLocalSearch 是专门为 Mapkit 设计的。

“MKLocalSearch 允许开发人员在一个地理区域内找到附近的兴趣点。”

我不确定您正在做多少地图工具包集成,但如果您只是想让用户搜索位置,以上内容应该会有所帮助。

我还要注意,如果您对 CLGeocoder 不满意,可以使用 google 的 geocoding API

【讨论】:

  • 所以这意味着实际上不可能在用户输入时获得地址建议列表?我的意思是 LocalSearch 照它说的做,它在一个区域内搜索,但是如果我想在另一个城市内搜索一个地址,我就不走运了?
  • 您可以使用 CLGeocoder 搜索另一个城市内的地址(它会工作),但您不会得到您正在寻找的自动填充建议。
猜你喜欢
  • 1970-01-01
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多