将Google Maps API v3搜索结果限制在一个国家/地区,同时将其偏向某个位置

时间:2019-01-24 16:58:37

标签: javascript google-maps google-maps-api-3 google-geocoder

我正尝试将搜索结果限制在某个国家/地区,并严重偏向某个特定的经纬度(但不限制)。

我正在使用“边界”字段将API返回的搜索结果偏向用户的位置(documentation)。这很好,但是,我还需要将返回结果限制在一个国家/地区。

我正在为此使用“区域”字段,但它并不将结果限制在某个国家/地区,而只是对它们有偏见。我尝试使用“ componentRestrictions”字段将结果限制在一个国家/地区。效果很好,但是,我最初设置的地理位置偏向(使用“界限”字段)似乎停止工作(或至少现在工作方式有所不同)。

关于在这里如何实现我的目标的任何想法吗?

示例

我正在发送针对“ 35堡垒街”的地址解析器请求。区域设置为CA(加拿大),边界设置为在加拿大不列颠哥伦比亚省温哥华市周围2.5度。可能有两个搜索结果:一个在加拿大的安大略省多伦多,另一个在加拿大的不列颠哥伦比亚省纳奈莫。我希望Nanaimo能够在这种情况下出现,因为它的位置更近,而且确实如此。链接: https://maps.googleapis.com/maps/api/geocode/json?address=35%20bastion%20st.&region=CA&bounds=46.7827,-125.6207|51.7827,-120.620&key=AIzaSyD3y1Mk-vZjfgqg1GB_dOWMDo004oY8xus

现在,如果我有相同的请求,但应用了国家/地区过滤器,则我希望返回相同的结果,但事实并非如此。链接: https://maps.googleapis.com/maps/api/geocode/json?address=35%20bastion%20st.&region=CA&bounds=46.7827,-125.6207|51.7827,-120,%20-122.1207&components=country:CA&key=AIzaSyD3y1Mk-vZjfgqg1GB_dOWMDo004oY8xus

修改

更正的第二个链接: https://maps.googleapis.com/maps/api/geocode/json?address=35%20bastion%20st.&bounds=46.7827,-125.6207|51.7827,-120.620&components=country:CA&key=AIzaSyD3y1Mk-vZjfgqg1GB_dOWMDo004oY8xus

1 个答案:

答案 0 :(得分:1)

根据Google的说法,这不是错误(请参见https://issuetracker.google.com/issues/123557217)。

  

据我们的工程师说,这是按预期工作的。

     

原因是使用这两个参数时,国家/地区组成部分将被优先处理,因为两者的用例完全不同。

     

此外,“ 35堡垒st”含糊不清,应使用自动填充功能进行搜索,在这种情况下视口/边界可以更好地影响结果。