我正在使用google geocode api使用新加坡的 postal code 获取lat
我试过以下来获取数据:
(1)http://maps.googleapis.com/maps/api/geocode/json?address=505468&sensor=false
(2)http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false
(3)http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false®ion=sg
但它从印度返回位置
https://developers.google.com/maps/documentation/geocoding/?hl=fr#RegionCodes
任何其他方式只获得特定国家(新加坡)的结果 .
我试过跟着它返回正确的结果
http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20133224&sensor=false
4 回答
要将结果限制到特定国家/地区,请使用组件过滤 .
该网址应为http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false&components=country:SG
但这不是问题,地理编码器结果是错误的,因为结果将国家设置为
SG
,但位置错误(放置在印度) .我担心给定的地址(似乎邮政编码不存在),你唯一能做的就是向谷歌报告错误的结果 .
这样做的正确方法是提供componentRestrictions
例如:
您可以设置单个国家或多个国家/地区
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Raf&sensor=false&types=(regions)&key=YOUR_API_KEY&components=country:ESP
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Raf&sensor=false&types=(regions)&key=YOUR_API_KEY&components=country:ESP|country:uk|country:us
你应该可以使用这种方法http://maps.googleapis.com/maps/api/geocode/json?components=country:US|postal_code:5037
删除地址和组件传递邮政编码,并确保地址有一个值让传递用户选择的另一个值与邮政编码验证您的api否则没有邮政编码传递它将泄漏到另一个地址