2

我正在使用 Google Places 搜索,我希望在 GCC 国家(阿联酋、沙特阿拉伯、阿曼、科威特和巴林)上使用“位置偏差”。

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

我想在一个文本框上提供谷歌地方搜索,用户只能看到来自阿联酋、沙特阿拉伯、阿曼、科威特和巴林这些国家的结果?

谢谢,


我可以使用“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);

但我希望在我上面提到的多个柜台上进行位置偏差。

4

3 回答 3

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

于 2017-01-17T21:21:20.227 回答
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);
      }
    });
  }
于 2012-06-04T19:00:49.873 回答
1

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

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);

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

于 2012-06-07T07:48:46.537 回答