Google map API:如何在搜索和地址之间进行选择

问题描述 投票:1回答:2

我正在实现地理编码并放置Google API。第一个从地址返回一些点(经度/纬度)。第二个从搜索条目返回一些兴趣点。

作为iphone Map的本机应用程序,我想确定用户是否在搜索栏中输入了地址,或者只是输入了一些关键字。

例如,如果我输入:

9 bicycle Street, New York => address, use Geocoding API
9 bicycle Street => Geocoding API
bicycle street   => Geocoding API
bicycle        => Place API
bicycle shop   => Place API

我试图始终调用地址解析API,如果没有结果,则调用Place API。但是总会有结果。

我是否应该检测一些关键字,例如streethighway,...?

google-maps-api-3 geocoding google-places-api google-geocoding-api
2个回答
0
投票

我终于找到答案了。

iPhone Map本机应用程序无法确定用户是否输入了地址或仅输入了一些关键字。它使用Text Search Requests调用等效于place API的代码。

文本搜索请求比地方搜索请求更灵活,功能更强大,但在有限的配额中消耗的请求多10倍:

[Google Place Search和Google Places Text Search服务都具有相同的使用限制;但是,文本搜索服务的乘数是10倍。也就是说,您提出的每个“文本搜索”请求将计为10个请求(不超过您的配额)。


-1
投票

您在帖子的最后一行提出的问题让我感到畏缩,因为不能保证用户会在地址中键入这些后缀(它们是完全可选的,格式也大不相同)。我已经看过很多次了,检测关键字并不是行之有效的方法。 (此外,名为“自行车街”的商店如何?)

[鼓励您查看my answer over here,在此我将讨论识别或解析地址的困难。有一些示例显示了一些看起来有些疯狂的地址仍然是有效地址,而不是地名。

此外,here's a brief article描述了使用正则表达式(或通用模式)来标识和提取地址的困难-与您要执行的操作类似。

Google地理编码API始终为您提供结果的原因是因为它确实地址了[[近似值-如果该地址不存在,则Google会做得最好:无论如何,它都会搜索显示给您的东西您正在寻找的。如果您键入一个不存在的地址,它仍然会显示结果,因为它会插值并组成数据,因此您仍然可以进行一些操作。有时这可能很有用,但在这里可能会咬你。

我建议您寻找仅对

有效

地址进行地理编码的服务,如果没有结果,请使用places API。例如,US Street Address API by SmartyStreets(在我工作的地方)仅在地址可以解析且实际存在的情况下才返回结果。查看一些demos以了解我的意思。这应该完成您要完成的任务。
© www.soinside.com 2019 - 2024. All rights reserved.