使用 google geocode api 仅获取特定国家/地区的结果
Posted
技术标签:
【中文标题】使用 google geocode api 仅获取特定国家/地区的结果【英文标题】:Get only country specific result using google geocode api 【发布时间】:2013-10-02 08:09:33 【问题描述】:我正在使用 google geocode api 使用新加坡的邮政编码获取纬度
我尝试了以下方法来获取数据:
(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
【问题讨论】:
Google's Geocoder returns wrong country, ignoring the region hint的可能重复 【参考方案1】:您可以设置单个国家或多个国家
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
【讨论】:
感谢您的回答。它对我有很大帮助。我正在寻找多个国家/地区的解决方案 @SourabhSharma 有最多 5 个国家代码的限制【参考方案2】:您应该能够使用这种方法 http://maps.googleapis.com/maps/api/geocode/json?components=country:US|postal_code:5037
删除地址并向组件传递邮政编码,并确保该地址是否有值让用户使用邮政编码选择另一个值来验证您的 api,否则如果没有传递邮政编码,它将泄漏到另一个地址
【讨论】:
【参考方案3】:这样做的正确方法是提供componentRestrictions
例如:
var request =
address: address,
componentRestrictions:
country: 'UK'
geocoder.geocode(request, function(results, status)
//...
);
【讨论】:
your answer 的完全相同的副本,停止发布重复的答案,不要创建冗余。 你们都看到这是一个重复的问题:正确的程序是在此基础上关闭问题。 救了我的命!谢谢【参考方案4】:要将结果限制在特定国家/地区,请使用组件过滤。
网址应该是http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false&components=country:SG
但这不是这里的问题,地理编码器结果是错误的,因为结果将国家/地区设置为SG
,但位置错误(位于印度)。
恐怕给定的地址(邮编似乎不存在),你唯一能做的就是向谷歌报告错误的结果。
【讨论】:
感谢您的帮助,如果我们通过 api 请求传递postal_code
,我已经找到了这个解决方案,而不是我们只会得到特定的邮政编码结果。 http://maps.google.com/maps/api/geocode/json?address=505468&components=country:SG|postal_code:505468&sensor=false
http://maps.google.com/maps/api/geocode/json?address=787878&components=country:SG|postal_code:787878&sensor=false
但我希望用户可以通过任何地址、街道名称或邮政编码进行搜索,因此上述解决方案将不起作用。我会向谷歌报告此事。
不支持多个国家 components=country:us|components=country:pr is not working
如何在组件中设置多个国家同时进行 google api 自动完成调用?
maps.googleapis.com/maps/api/place/autocomplete/…以上是关于使用 google geocode api 仅获取特定国家/地区的结果的主要内容,如果未能解决你的问题,请参考以下文章
Google Maps Geocoding API(如何获取纬度/经度)
获取与 Google Places/Geocoding API 的交集
Google Maps API v3:使用 IP 地址多个 LatLng 的 Geocoder.geocode
使用 Google Maps JavaScript API v3 和 Geocoding API 映射多个位置