谷歌搜索位置偏向

时间:2012-06-04 18:55:06

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

我正在使用谷歌地方搜索,我想在海湾合作委员会国家(阿联酋,沙特阿拉伯,阿曼,科威特和巴林)“地点偏向”。

我想实现以下目标 https://developers.google.com/maps/documentation/places/autocomplete#location_biasing

我想在文本框中提供Google商家信息搜索,用户只能看到来自这些国家/地区的结果阿联酋,沙特阿拉伯,阿曼,科威特及其他国家/地区。巴林?

谢谢,


我可以使用“componentRestrictions”参数在一个国家/地区使用“位置偏差”,如下面的代码段所示

var mapOptions = {
          //bounds : defaultBounds,  
          center: new google.maps.LatLng(25.2644444, 55.31166669999993),
          zoom: 13,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        map = new google.maps.Map(document.getElementById('map_canvas'),
          mapOptions);

        var input = document.getElementById('searchTextField');        
        var InputOptions = {
            types: ['(cities)'],
            **componentRestrictions: { country: 'AE' } // I want multiple counteries here**
        };                
        var autocomplete = new google.maps.places.Autocomplete(input, InputOptions);

但我想在上面提到的多个反击中使用位置偏差。

3 个答案:

答案 0 :(得分:2)

截至2017年1月,您现在可以在“地点自动填充”中为多个国家/地区创建过滤器。

  

现在,您可以将自动填充预测限制为仅覆盖多个国家/地区。您可以通过在AutocompleteOptions的componentRestrictions字段中指定最多5个国家/地区来执行此操作。

https://developers.google.com/maps/documentation/javascript/releases

https://developers.google.com/maps/documentation/javascript/3.exp/reference#ComponentRestrictions

答案 1 :(得分:1)

你到底想做什么?

如果我找对你,你只想对其中一个国家(阿联酋,沙特阿拉伯,阿曼,科威特和巴林)进行地理编码?

  function geocodeAddress() {
    var address = "Oman";
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        position: results[0].geometry.location // gives you the location
        });
      } else {
        alert("Error: " + status);
      }
    });
  }

答案 2 :(得分:1)

我认为这是不可能的(目前)。将结果限制为一个国家/地区仅在几周前添加为功能。您最好的选择是按地图边界限制结果,如Places Library website中的示例所示:

var defaultBounds = new google.maps.LatLngBounds(
  new google.maps.LatLng(-33.8902, 151.1759),
  new google.maps.LatLng(-33.8474, 151.2631)); 

var input = document.getElementById('searchTextField');
var options = {
  bounds: defaultBounds,
  types: ['establishment']
};

autocomplete = new google.maps.places.Autocomplete(input, options);

找到最适合您所需区域的界限。