Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 谷歌地图自动完成和边界_Google Maps - Fatal编程技术网

Google maps 谷歌地图自动完成和边界

Google maps 谷歌地图自动完成和边界,google-maps,Google Maps,我只想从墨西哥自动完成结果,为此,我尝试下面的代码,并添加边界,以确保将墨西哥放在一个矩形中,但我仍然得到来自国外的结果 我怎样才能解决这个问题 以下是相同的代码,相同的代码如下: <!DOCTYPE html> <html> <head> <title>Google Maps JavaScript API v3 Test: Places Autocomplete</title> <script src="ht

我只想从墨西哥自动完成结果,为此,我尝试下面的代码,并添加边界,以确保将墨西哥放在一个矩形中,但我仍然得到来自国外的结果

我怎样才能解决这个问题

以下是相同的代码,相同的代码如下:

<!DOCTYPE html>
<html>
  <head>
    <title>Google Maps JavaScript API v3 Test: Places Autocomplete</title>
    <script src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"
      type="text/javascript"></script>

    <style type="text/css">
      body {
        font-family: sans-serif;
        font-size: 14px;
      }
      #map_canvas {
        height: 1px;
        width: 1px;
        display:hidden;
      }
     #searchTextField{
        width:500px;
    }
    </style>

    <script type="text/javascript">
      function initialize() {

        var options = { 
          bounds: google.maps.LatLngBounds( google.maps.LatLng(33.1613, -118.4766), google.maps.LatLng(14.3770, -84.8145) )     
        };

        var input = document.getElementById('searchTextField');
        var autocomplete = new google.maps.places.Autocomplete(input, options);

        var infowindow = new google.maps.InfoWindow();

        google.maps.event.addListener(autocomplete, 'place_changed', function() {
          infowindow.close();
          var place = autocomplete.getPlace();

        });
      }
      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
      <input id="searchTextField" type="text" size="50"> <div id="map_canvas"></div>
  </body>
</html>

谷歌地图JavaScript API v3测试:放置自动完成
身体{
字体系列:无衬线;
字体大小:14px;
}
#地图画布{
高度:1px;
宽度:1px;
显示:隐藏;
}
#searchTextField{
宽度:500px;
}
函数初始化(){
变量选项={
边界:google.maps.LatLngBounds(google.maps.LatLng(33.1613,-118.4766),google.maps.LatLng(14.3770,-84.8145))
};
var input=document.getElementById('searchTextField');
var autocomplete=new google.maps.places.autocomplete(输入,选项);
var infowindow=new google.maps.infowindow();
google.maps.event.addListener(自动完成,'place\u changed',函数(){
infowindow.close();
var place=autocomplete.getPlace();
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);

设置边界不是位置偏移的方式。请参阅本文档中的“位置偏差”:

通过传递一个位置和一个参数,可以将结果偏移到指定的圆 半径参数。这样做会指示Place服务选择 在该范围内显示结果;超出定义范围的结果 区域仍可能显示

另外,请看下面的示例:


我还应该注意,我不认为只指定“仅限墨西哥”是可能的。您可以在半径范围内进行搜索,但不能仅指定一个国家

正如前面的答案所暗示的,正如它在中所说的,你只能对一组结果产生偏见。我建议在墨西哥中部甚至墨西哥城的某个地方做一个较小的界限,以使偏见变得更强。

< P>现在你可以实现你想要的:

    componentRestrictions: {country: 'mx'}
选项
参数中,构建
自动完成
对象


这是一个硬限制,不同于
边界
。这只适用于国家,但这正是你想要的。

我认为你关于位置偏见的第一句话不适用于V3。的文档确实说使用边界来对结果进行偏差。这是只从一个国家获得结果的更好方法。您的解决方案无效,因为边界设置不正确。
    var options = {
        types:  ['geocode'],
        componentRestrictions: {country: "mx"}
    };