【发布时间】:2014-11-05 10:25:47
【问题描述】:
我正在使用谷歌地理编码器来检查用户输入的地址是否正确。例如,用户输入了正确的街道和城市名称,但输入了错误的邮政编码。我想检查来自谷歌的邮政编码是否与输入的不同并显示建议。 但这不适用于巴西、荷兰和其他国家。例如,一个有效的巴西邮政编码是 01421-020,但是当我发送这个时,地理编码器只返回 01421。这也发生在其他国家。为什么谷歌没有返回完整的邮政编码?
编辑: 我正在使用这个包:https://github.com/geocoder-php/Geocoder 当我尝试提交此地址时:
R。 Pedroso, 215, 圣保罗 01322-010
执行的查询链接为:https://maps.googleapis.com/maps/api/geocode/json?address=R.%20Pedroso%2C%20215%2001322-010%20S%C3%A3o%20Paulo&sensor=false&language=pt_BR®ion=BR 如果你点击它,你可以在结果中看到返回的邮政编码是 01322,最后没有 -010
【问题讨论】:
-
你能提供一个示例请求吗?仅仅发送一个原始的邮政编码是行不通的,因为即使是人类也很难正确解释......
-
返回部分匹配。如果您删除街道号码,它会找到完全匹配的号码,并返回完整的邮政编码。
-
@GabyakaG.Petrioli 这确实有效,但我需要街道号码,因为我正在开发的系统提供家庭服务,我们需要详细地址。知道为什么 Google 在提供街道号码时只返回部分邮政编码吗?
-
不确定它是否万无一失,但如果您在
address_components中收到postal_code_prefix,您可能需要进行第二次请求。一个没有门牌号(只是为了获取完整的邮政编码)。 -
@faust,你有没有设法对 SP 大写邮政编码(5 位数)进行地理编码?我无法对诸如“圣保罗 01000”之类的邮政编码进行地理编码,因为谷歌认为这是一个街道号码
标签: google-maps google-maps-api-3 google-geocoder postal-code