首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何像苹果的本地地图应用程序那样完成本地搜索?

如何像苹果的本地地图应用程序那样完成本地搜索?
EN

Stack Overflow用户
提问于 2014-02-06 01:27:41
回答 3查看 6K关注 0票数 13

我通过采用苹果MKlocalSearch的这里示例代码中的大部分概念实现了一个实现

目前,对于自动完成,每次用户在搜索栏内输入时,我都会发送一个新的请求,其中我指定:

代码语言:javascript
复制
MkLocalSearchRequest.naturalLanguageQuery = searchBar.text
MkLocalSearchRequest.region = userlocation.region

但与苹果的默认地图应用程序相比,我得到的响应与sever完全不同,如下图所示

然后,我捕捉到流量,发现我的请求去了https://gsp-ssl.ls.apple.com/search.arpc,而苹果的去了complete.arpc

有任何方法来调优MkLocalSearchRequest以获得相同的响应对象集吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-10 12:57:52

MkLocalSearchRequest不会在你的搜索字符串上执行自动完成,也许是因为苹果想限制第三方应用程序的请求数量。

理论上,您可以反向工程对complete.arpc的请求和响应,然后自己执行这些请求,根本不使用MkLocalSearchRequest。但这可能会导致应用程序在app上被拒绝。

票数 8
EN

Stack Overflow用户

发布于 2014-11-05 02:14:35

@TypingPanda -我没有足够的观点直接评论,但是:小心使用Google!虽然可能不是很明显,但Google的条款和条件规定,任何对Google位置数据的可视化表示都需要出现在Google上。希望一切顺利!

票数 5
EN

Stack Overflow用户

发布于 2017-04-14 19:48:35

从iOS 9.3开始,苹果就提供了MKLocalSearchCompleter

MKLocalSearchCompleter对象接受部分搜索字符串,并生成可能完成的列表。使用搜索完成器对象检索基于地图的搜索控件的自动完成建议。

这是使用complete.arpc的类

它的语法与MkLocalSearchRequest非常相似。

代码语言:javascript
复制
MKLocalSearchCompleter.queryFragment = searchBar.text
MKLocalSearchCompleter.region = userlocation.region

但是要获得结果,您需要侦听委托方法:

代码语言:javascript
复制
- (void)completerDidUpdateResults:(MKLocalSearchCompleter *)completer;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21592255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档