【发布时间】:2018-06-13 16:52:09
【问题描述】:
我在使用 Google 地图时遇到了一个奇怪的问题,他们的文档似乎没有涵盖。
我们的应用程序中有一个页面,当最终用户输入邮政编码时,该页面会返回按距离排序的工程师位置列表。我们最近注意到一些最终用户正在输入部分英国邮政编码(L1、BB7 或 SE10)。
这些往往没问题,可以按预期工作,但如果用户搜索曼彻斯特地区的部分邮政编码,他们会得到奇怪的结果,返回的距离超过 100 英里。
我对此进行了研究,似乎 Google 正在返回高速公路网络的位置,其中道路名称与曼彻斯特的邮政区相匹配。例如:M4 正在返回布里斯托尔北部而不是市中心区域的高速公路。
我发送给 Google 的有效载荷如下:
$url="https://maps.google.com/maps/api/geocode/json?address={$address}&components=country:GB&key={$apikey}";
如果我将有效负载更改为:
$url="https://maps.google.com/maps/api/geocode/json?components=country:GB|postal_code:{$address}&key={$apikey}";
我从 API 获得 ZERO_RESULTS。
我在 2014 年看到了这个 question,这是相同的问题,但似乎没有找到解决方案。
我做错了什么?是否有任何解决方法可以尝试获得更准确的结果?我是否最好将输入限制为仅完整的邮政编码?
【问题讨论】:
-
随便用谷歌搜索一下,好像不行。如果我是你,我会仅限于完整的邮政编码,如果你能在某个地方找到所有可能的邮政编码的公开列表(我相信这是可能的),我会考虑进行自动完成。这应该使您的用户可以轻松使用部分输入,并使结果也能正常工作。
-
@dgig 我将不得不将此添加到以后的更新中,但这似乎是除了让 Google 更新其系统之外的唯一解决方案。
标签: php google-maps geocoding